JDBC Sqlite rs.next - 当PreparedStatement有变量时,不要进入rs.next循环

时间:2015-12-12 15:11:32

标签: java sqlite jdbc

这真的吓坏了我。在我的代码中,我将生成的uuid作为我的私钥移交。现在我想从一个只有一个值的表中选择(avg_distance_as)。当我用修复uuid编写语句时,一切正常。但是因为我想用我当前的uuid得到特定的行,我想把它放在我的陈述中。

soooo没有错误 - 他甚至没有在rs.next循环中调用syso。这个是有效的:

    public int getavgDistanceAs(String uuid) {

    try {
        Class.forName("org.sqlite.JDBC");
        con = DriverManager.getConnection("jdbc:sqlite:test.db");


        statement = con.prepareStatement("Select avg_distance_as, UUID from avg_distance");
        System.out.println(uuid);
        statement.setString(1, uuid);

        ResultSet rs = statement.executeQuery();

        while (rs.next()) {
            System.out.println(rs.getDouble(1));
            System.out.println("test");
        }
    } catch (Exception e) {
        e.printStackTrace();
    } finally {
        try {
            statement.close();
            con.close();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    return 0;
}

但是这个不是,它看起来非常相似:

statement = con.prepareStatement("Select avg_distance_as, UUID from avg_distance where UUID = ?");
statement.setString(1, uuid);

如果有人可以提供帮助,那会很棒吗。)

1 个答案:

答案 0 :(得分:-1)

好的 - 得到了......我在计算中搞砸了我的订单。 @Kayaman是对的:uuid在需要的时候失踪了。