データベースからいくつかの値を返すために、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;
}