SQLite, используемый через программу sqlite4java, не заканчивается - PullRequest
0 голосов
/ 20 марта 2019

У меня есть 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

Мне кажется, что цикл while не останавливается, не знаю почему. Я точно следую документации.

1 Ответ

0 голосов
/ 21 апреля 2019

Я думаю, что там может происходить что-то еще, какой-то другой поток запускается и никогда не завершается.Просто чтобы убедиться, что я запустил тот же код, который вы опубликовали, и он нормально завершился.Или, возможно, что-то не так с файлом базы данных, и SQLite просто продолжает сканировать его после того, как был напечатан первый результат.

Чтобы выяснить, что происходит, запустите вашу программу в IDEA и, когда она зависнет в конце, используйте действие «Dump Threads» в IDEA (значок, похожий на камеру).Если это не сразу ответит на вопрос, пожалуйста, опубликуйте дамп темы здесь.

Надеюсь, это поможет!Игорь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...