0

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

SELECT * FROM uses WHERE  uses_user_fk='22';

我只收到一行,但在数据库中有两个满足查询条件的值,如附图所示。谁能告诉我哪里出错了。我正在使用以下 JDBC 指令来执行查询

ResultSet tempResultSet = statement.executeQuery(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 回答