Java MySQL-Connector中DELETE语句的任何已知问题?

时间:2014-02-04 04:08:09

标签: java mysql sql jdbc mysql-connector

我已经检查过了,我已经检查了整个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()提供了有效的连接(使用SELECTINSERTUPDATE),并且用户拥有SELECT的权限,{{1 }},INSERTUPDATE

我目前正在使用以下技术:

  • Java 6(1.6)
  • MySQL的连接器的Java-5.1.28.jar
  • 我也有同样的经历
  • MySQL的连接器的Java-5.1.19.jar

因此,如果有人遇到与我似乎有相同的问题,可能因为和/或如何解决问题,我将非常感激。
谢谢Stackoverflow的每个人。 :)希望这与其他人有关。

4 个答案:

答案 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),这适用于INSERTUPDATESELECTDELETE-statement的工作方式是设置conn.setAutoCommit(true)的连接1}},然后添加conn.commit()以使声明通过。

想要感谢user2310289,感谢他/她的答案,这很有帮助。