Java SQLite JDBCexecuteQuery 返回非空列的空 ResultSet

标签 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();

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

最佳答案

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

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

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

关于Java SQLite JDBCexecuteQuery 返回非空列的空 ResultSet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36377989/

相关文章:

java - Android AudioRecord Artifact

java - String.format 在控制台中工作但在 JOptionPane 中不起作用

java - 有关 Spring Framework 应用程序中 JDBC 逻辑的一些信息

java - 使用 Spring LDAP 在 Java 中进行身份验证

java - LDAP:错误代码 49 - 简单绑定(bind)失败:NT_STATUS_LOGON_FAILURE

sql - 按 : Returning unLIKE before LIKE? 排序

android - rawQuery 与数据库.查询

android - 如何在 Android MapView 中显示数千个 OverlayItems

spring - 无法在 Spring Boot 应用程序中查找 JNDI 数据源

java - java中的结果集转换器