Я не могу выполнить оператор sqlite при нормальном запуске кода, но в режиме отладки он работает. Как это возможно?

-2

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

Я попытался переключить код, и все другие операторы работают, например, INSERT или SELECT. Только ОБНОВЛЕНИЕ (в любой форме) не работает. Я попытался выполнить оператор в командной строке sql, и это сработало, поэтому проблема не возникает.

public void makeReq(int type,String SPZ){
        String sql = "UPDATE users "
                + "SET req = ? "
                + "WHERE SPZ = ?";
        try {
            conn = DriverManager.getConnection("jdbc:sqlite:users.db");
            PreparedStatement pstmt = conn.prepareStatement(sql); 
            pstmt.setInt(1, type);
            pstmt.setString(2, SPZ);
            int rowAffected = pstmt.executeUpdate();


        } catch (SQLException e) {
            System.out.println("FATAL ERROR: couldn't connect to the USERS database");
        }
    }

Я ожидаю, что он выполнит и обновит выбранную таблицу (пользователи).

Спасибо за помощь.

  • 2
    Напечатайте SQLException, а не свое собственное сообщение.
  • 0
    Он говорит, что база данных занята, но когда я удаляю строку с соединением, он говорит, что соединение закрыто.
Показать ещё 2 комментария
Теги:
jdbc

1 ответ

0

Нашел ответ: моя база данных была открыта где-то еще в моем проекте, я пытался удалить это, но не сделал.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню