我在我的网络服务中执行 JDBC 选择查询以从我的数据库中返回一些值。此表的一部分附于此问题。执行以下查询后:
SELECT * FROM uses WHERE uses_user_fk='22';
我只收到一行,但在数据库中有两个符合查询条件的值,如附图所示。任何人都可以告诉我我犯了什么错误。我正在使用以下JDBC指令来执行查询
ResultSet tempResultSet = statement.executeQuery(query);
数据库表的图像使用:
在查询数据库的competition方法下面,参数查询与前面列出的“ SELECT * FROM uses ... ”相同。我应该补充一点,该查询的答案是 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;
}
答案 0 :(得分:0)
替换
if (tempResultSet.next())
与
while (tempResultSet.next())