0

データベースからいくつかの値を返すために、Web サービスでJDBC選択クエリを実行していました。この表の一部がこの質問に添付されています。次のクエリを実行した後:

SELECT * FROM uses WHERE  uses_user_fk='22';

1行しか受け取りませんが、データベースには、添付の図でわかるように、クエリ条件を満たす2つの値があります。どこで間違いを犯したのか誰か教えてください。次のJDBC命令を使用してクエリを実行しています

ResultSet tempResultSet = statement.executeQuery(query);

以下のデータベーステーブルの画像は以下を使用しています:
ここに画像の説明を入力

データベースにクエリを実行するcomputeメソッドの下、引数 query は先ほど挙げた「<strong>SELECT * FROM uses…</strong>」と同じです。そのクエリの答えが4であることを追加する必要があります。引用符を使用せずにこのクエリも試してみましたが(uses_user_fk=22 )、結果は同じでした:

protected ArrayList<Integer> queryForIds(String query, String column) throws Exception {
        ArrayList<Integer> ids = new ArrayList<>();
        try {
            Class.forName("com.mysql.jdbc.Driver");
            connect = DriverManager
                    .getConnection(GeneralDatabaseConstants.DATABASE_CONNECTION_URL);
            statement = connect.createStatement();
            ResultSet tempResultSet = statement.executeQuery(query);
            if (tempResultSet.next())
                ids.add(new Integer(tempResultSet.getInt(column)));
        } catch (Exception e) {
            throw e;
        } finally {
            close();
        }
        return ids;
    }
4

1 に答える 1

0

交換

if (tempResultSet.next())

while (tempResultSet.next())
于 2012-11-23T11:42:22.590 に答える