Java SQLite JDBC executeQuery返回非空列的空ResultSet

时间:2016-04-02 19:48:14

标签: java sqlite jdbc

我的代码:

Class.forName("org.sqlite.JDBC");
Connection C = DriverManager.getConnection("jdbc:sqlite:test.db");

Statement S = C.createStatement();
S.execute("CREATE TABLE NUMBER (VALUE INT(1))");
S.close();

S = C.createStatement();
S.execute("UPDATE NUMBER SET VALUE = 0");
S.close();

Statement S = C.createStatement();
ResultSet Value = S.executeQuery("SELECT VALUE FROM NUMBER");

if(Value.next())
{

    int Result = Value.getInt("VALUE");
    System.out.println("Success");

}
else
{

    System.out.println("Failure");

}

S.close();

我希望此代码的结果为“Success”,因为它应该从表NUMBER中的VALUE列中检索整数值0。但是,它会打印“失败”。我无法弄清楚这是因为表实际上是空的还是因为它无法获取数据或什么。任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:2)

您正在执行UPDATE语句,但是按照呈现代码的顺序,表NUMBER中没有任何内容,因为UPDATE语句用于更新表中的现有记录。

使用INSERT语句,因此首先插入数据,因为只有这样才能在表NUMBER中创建元组。之后,ResultSet不应该是空的。

如果你需要学习这个概念,你可以看看这个W3Schools guide