【发布时间】:2019-08-24 04:43:02
【问题描述】:
我有一个通过 JDBC 连接到我的 java 项目的 SQLite 数据库。我可以轻松读取所有数据并将新用户添加到我的数据库中,但是当我执行准备好的语句时,我得到一个 SQLexeption。在我以调试模式运行程序并在准备好的语句所在的行设置断点后,它可以毫无问题地完成任务。
我尝试切换代码,并且所有其他语句都可以正常工作,例如 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");
}
}
我希望它执行并更新选定的表(用户)。
感谢您的帮助。
【问题讨论】:
-
打印 SQLException 而不是您的自定义消息。
-
它说数据库很忙,但是当我删除带有连接的行时,它说连接已关闭。
-
您可以编辑您的问题并粘贴您看到的堆栈跟踪吗?
-
我发现了问题,将其发布为答案。谢谢你的帮助,我不会发现那是我没有阅读 SQLExeption。