正常运行代码时,我无法执行sqlite语句,但是在调试模式下它可以工作。这怎么可能?

时间:2019-04-02 19:01:24

标签: java sqlite jdbc

我有一个通过JDBC连接到我的Java项目的SQLite数据库。我可以轻松读取所有数据并向数据库中添加新用户,但是当我执行准备好的语句时,我得到一个SQLexeption。在以调试模式运行程序并将断点设置为带有prepared语句的行之后,它可以毫无问题地完成任务。

我尝试切换代码,所有其他语句都起作用,例如INSERT或SELECT。只有UPDATE(任何形式的)无效。我试图在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 :(得分:0)

找到答案:我在项目的其他位置打开了数据库,我想删除它,但没有删除。