我的代码:
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();
我希望这段代码的结果是“成功”,因为它应该从表 NUMBER 的 VALUE 列中检索整数值 0。但是,它反而打印“失败”。我无法弄清楚这是因为表实际上是空的还是因为它无法获取数据或什么。任何帮助将不胜感激。
最佳答案
您正在执行 UPDATE
语句,但按照代码呈现的顺序,表 NUMBER
中尚未保留任何内容,因为 UPDATE
> 语句用于更新表中现有记录。
请使用 INSERT
语句,从而首先插入数据,因为只有这样才能在表 NUMBER
中创建元组。之后,ResultSet
不应再为空。
如果你需要学习这个概念,你可以看看这个 W3Schools guide .
关于Java SQLite JDBCexecuteQuery 返回非空列的空 ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36377989/