Java 我能';在正常运行代码时,不能执行sqlite语句,但在调试模式下它可以工作。怎么可能呢?

Java 我能';在正常运行代码时,不能执行sqlite语句,但在调试模式下它可以工作。怎么可能呢?,java,sqlite,jdbc,Java,Sqlite,Jdbc,我有一个SQLite数据库,通过JDBC连接到我的java项目。我可以轻松地读取所有数据并向数据库中添加新用户,但是当我执行一条准备好的语句时,我会得到一个SQLexeption。在我以调试模式运行程序并将断点设置到带有准备好的语句的行之后,它会毫无问题地完成任务 我尝试切换代码,所有其他语句都可以工作,例如INSERT或SELECT。只有更新(以任何形式)不起作用。我试着在sql命令行中执行该语句,它成功了,所以没有问题 public void makeReq(int类型,字符串SPZ){ S

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

我尝试切换代码,所有其他语句都可以工作,例如INSERT或SELECT。只有更新(以任何形式)不起作用。我试着在sql命令行中执行该语句,它成功了,所以没有问题

public void makeReq(int类型,字符串SPZ){
String sql=“更新用户”
+“设置请求=?”
+“其中SPZ=?”;
试一试{
conn=DriverManager.getConnection(“jdbc:sqlite:users.db”);
PreparedStatement pstmt=conn.prepareStatement(sql);
pstmt.setInt(1,类型);
pstmt固定管柱(2,SPZ);
int rowInfected=pstmt.executeUpdate();
}捕获(SQLE异常){
System.out.println(“致命错误:无法连接到用户数据库”);
}
}
我希望它执行并更新所选的表(用户)


谢谢您的帮助。

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

打印SQLException,而不是您的自定义消息。它说数据库正忙,但是当我删除带有连接的行时,它表示连接已关闭。你能编辑你的问题并粘贴你看到的堆栈跟踪吗?我发现了问题,将其作为答案发布。谢谢你的帮助,如果我没有读SQLExeption,我就不会发现这一点。