JDBC select查询返回错误的值

时间:2012-11-23 11:21:15

标签: sql select jdbc

我在我的网络服务中执行 JDBC 选择查询以从我的数据库中返回一些值。此表的一部分附于此问题。执行以下查询后:

SELECT * FROM uses WHERE  uses_user_fk='22';

我只收到一行,但在数据库中有两个符合查询条件的值,如附图所示。任何人都可以告诉我我犯了什么错误。我正在使用以下JDBC指令来执行查询

ResultSet tempResultSet = statement.executeQuery(query);

数据库表的图像使用
enter image description here

在查询数据库的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;
    }

1 个答案:

答案 0 :(得分:0)

替换

if (tempResultSet.next())

while (tempResultSet.next())