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

У меня есть база данных 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");
        }
    }

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

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

1 Ответ

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

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

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