我已经检查过了,我已经检查了整个Google的问题,尝试了各种解决方案,但我没有找到任何解决方案。
问题是DELETE
- 陈述并没有真正起作用。
java.sql.Connection conn = new Connection().getConnection();
try {
conn = new Connection().getConnection();
PreparedStatement statement = (PreparedStatement) conn.prepareStatement("DELETE FROM _users WHERE _id = ?");
statement.setInt(1, 4);
statement.executeUpdate();
} catch (Exception e) {
System.out.println(e);
} finally {
try {
conn.close();
} catch (Exception e) {
System.out.println(e);
}
}
这是我正在使用的代码,对于所有我理解的statement.executeUpdate()
是使用的方法。我也试过statement.execute()
和各种尝试
没有例外,所以没有已知的错误。新的Connection()。getConnection()提供了有效的连接(使用SELECT
,INSERT
,UPDATE
),并且用户拥有SELECT
的权限,{{1 }},INSERT
和UPDATE
。
我目前正在使用以下技术:
因此,如果有人遇到与我似乎有相同的问题,可能因为和/或如何解决问题,我将非常感激。
谢谢Stackoverflow的每个人。 :)希望这与其他人有关。
答案 0 :(得分:1)
要说某些事情isn't really working
不会让我们继续下去。
但我建议您阅读交易。见http://docs.oracle.com/javase/tutorial/jdbc/basics/transactions.html
除非启用autoCommit
,否则您需要commit
您的交易。
同样在您的示例中,您使用值为4
的ID - 这确实存在吗?
答案 1 :(得分:0)
您始终使用相同的ID进行删除。因此,无论id是否存在,语句将始终执行。
答案 2 :(得分:0)
id 4是否存在?您可以在mysql中一遍又一遍地发出此命令:DELETE FROM _users WHERE _id = 4;
只要表_users存在,就不会出现任何错误。它会继续运行。验证id 4是否存在。
答案 3 :(得分:0)
问题已经解决了! 所以这个答案是为了满足未来需求
我的联系自动设置为conn.setAutoCommit(false)
,这适用于INSERT
,UPDATE
和SELECT
,DELETE-statement
的工作方式是设置conn.setAutoCommit(true)
的连接1}},然后添加conn.commit()
以使声明通过。
想要感谢user2310289,感谢他/她的答案,这很有帮助。