java - results.next() == false 并且没有打印数据

标签 java sqlite jdbc

results.next() 为 false,while 循环中的 !results.next() 打印 ResultSet 已关闭

我已经尝试了一切。从执行 Class.forName() 到 connection.setAutoCommit(false) 没有任何效果:/

public static void main(String[] args) throws Exception {
       String query = "SELECT * FROM StudentInfo";
       String url;
        try {
            Class.forName("org.sqlite.JDBC");
        connection = DriverManager.getConnection(url);
            ps = connection.prepareStatement(query);
            results = ps.executeQuery();
            while (results.next()) {
               print(results.getString("nameID"));
            }
    } catch (SQLException e) {
        print(e.getMessage());
    }  

}

只打印出 BUILD SUCCESSFUL 而不打印任何我的数据

最佳答案

首先要考虑的是确保表不为空。

Class.forName 甚至没有分配给任何东西。 connection.setAutoCommit(false) 在这里无关紧要,因为这更多的是事务细节。对于如此简单的查询,您无需担心这一点。

我会尝试先运行一个您知道有效的查询。也许您的连接甚至不正确或可能为空,因此从未真正执行查询。这可能就是您的结果集被关闭的原因。

我还希望 print()来自 System.out 或实际打印的内容。

关于java - results.next() == false 并且没有打印数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57329984/

相关文章:

JAVA Sqlite 西里尔字母显示为?

java - IDEA mysql java.lang.ClassNotFoundException : com. mysql.jdbc.Driver 问题

java - 如何从一个表中提取数据并插入到另一个表中

java - 通过Web界面在Java中执行动态sql和pl/sql

java - 如何禁用 oData API 的 HTTP POST REQUEST?

java - 在重复的布局上滚动 - Android

java - Spring 批处理 : Pass over names of read-in files to the next step

java - Spring Rest Controller 返回特定字段

java - Android room FOREIGN KEY 约束失败,即使值相同

java - 从 EditTexts 添加新项目到 SQLite 数据库时出错