Java的MySQL连接器中的DELETE语句有任何已知问题吗?

Java的MySQL连接器中的DELETE语句有任何已知问题吗?,java,mysql,sql,jdbc,mysql-connector,Java,Mysql,Sql,Jdbc,Mysql Connector,我到处查看,我在谷歌上到处查看这个问题,尝试了各种解决方案,但我没有找到任何解决方案。 问题是DELETE语句实际上不起作用 这是我正在使用的代码,据我所知,statement.executeUpdate是要使用的方法。我也尝试过statement.execute和各种尝试。 没有例外,因此没有已知错误。new Connection.getConnection提供了一个使用SELECT、INSERT、UPDATE的有效连接,并且用户具有SELECT、INSERT、UPDATE和DELETE的权限

我到处查看,我在谷歌上到处查看这个问题,尝试了各种解决方案,但我没有找到任何解决方案。 问题是DELETE语句实际上不起作用

这是我正在使用的代码,据我所知,statement.executeUpdate是要使用的方法。我也尝试过statement.execute和各种尝试。 没有例外,因此没有已知错误。new Connection.getConnection提供了一个使用SELECT、INSERT、UPDATE的有效连接,并且用户具有SELECT、INSERT、UPDATE和DELETE的权限。 我目前使用的技术包括:

Java 6 1.6 mysql-connector-java-5.1.28.jar 我也有同样的经历 mysql-connector-java-5.1.19.jar 因此,如果有人和我有同样的问题,我会非常感激,这可能是因为什么和/或如何解决它。 谢谢Stackoverflow的各位希望这与其他人有关。

说有些东西没有真正起作用,并不能给我们带来太多的进展

但我建议你仔细阅读交易。看

除非启用“自动提交”,否则您将需要提交事务


同样在您的示例中,您使用了值为4的ID-这真的存在吗?

您总是使用相同的ID从中删除。因此,无论id 4是否存在,该语句都将始终执行。

id 4是否存在?您可以在mysql中反复发出这个命令:DELETE FROM_users,其中_id=4


只要表用户存在,就不会出现任何错误。它会继续运行。验证id 4是否存在。

问题已解决!所以这个答案是为了将来的需要 我的连接自动设置为conn.setAutoCommitfalse,这适用于INSERT、UPDATE和SELECT,而DELETE语句的工作原理是将连接设置为conn.setAutoCommittrue,然后添加一个conn.commit以使语句通过。
要感谢s/he的答案,这对我们很有帮助。

不删除。就是这样!谢谢你的帮助。ID 4确实存在,但什么也没做。我的连接自动具有conn.setAutoCommitfalse,当我将其设置为conn.setAutoCommittrue,然后在最后添加一个conn.commit时,它就工作了。我仍然不明白为什么,所以我要重新阅读交易,并试图找出为什么它会起作用,其他一切都会起作用。再次感谢您。@JohnCastell如果您调用commit或enable auto commit,则不应同时执行这两项操作。如果您调用commit或enable auto commit,则不应同时执行这两项操作。是的,现在注意到了。
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);
    }
}