通过sqlite4java程序使用的SQLite不会结束

时间:2019-03-19 21:56:40

标签: sqlite

我有一个sqlite4java程序,可以在我的主要方法中像这样连接和运行SQLite数据库上的语句:

public static void main(String[] args) throws SQLiteException {


    getPredictions();

}

private static void getPredictions() throws SQLiteException {

    int passValue = 408;

    SQLiteConnection db = new SQLiteConnection(new File("D:\\sqlite\\CW.db"));
    db.open(true);
    SQLiteStatement statement = db.prepare("SELECT * FROM user_based_sim WHERE user1 = ? OR user2 = ?;");
    try {
        statement.bind(1,passValue);
        statement.bind(2,passValue);

        while (statement.step()) {

            System.out.println(statement.columnInt(0));
        }
    } finally {
        statement.dispose();
    }

    db.dispose();

}

} 该语句将输出正确的值,但该程序不会结束,例如,直到我手动关闭它为止,它仍然像这样:

IntelliJ run/stop buttons

在我看来,while循环不会停止,不知道为什么。我会严格按照文档进行操作。

1 个答案:

答案 0 :(得分:0)

我认为那里可能正在发生其他事情,一些其他线程开始运行并且永远不会终止。为了确保这一点,我运行了与您发布的代码相同的代码,并且终止了。或者,可能是数据库文件出了点​​问题,SQLite只是在打印出第一个结果后才继续对其进行扫描。

要弄清楚发生了什么,请在IDEA中运行程序,并在程序挂起时使用IDEA中的“转储线程”操作(类似相机的图标)。如果仍然不能立即解决问题,请在此处发布线程转储。

希望这会有所帮助! 伊戈尔(Igor)