java - MYSQL 更新表不适用于 Java 实现

标签 java mysql database

在我的 Java 程序中,我使用 Mysql 数据库。在用 Java 实现每个查询之前,我使用 SQLDeveloper 对其进行测试,以确保其有效。

在 SQLDeveloper 中,以下查询完美运行:

UPDATE keyword t JOIN banned b ON t.excerpt LIKE CONCAT_WS('', '%', b.word, '%')
SET t.filter = 'BANNED'
WHERE t.filter IS NULL

(它只是在标题列表中将包含禁止词(即亵渎性内容)的标题标记为禁止。

现在,当我用 Java 实现此查询时,代码运行完美(没有错误,没有异常),但实际上数据库没有更新,因为它使用的是 SQLDeveloper。这是代码:

    String query = "UPDATE keyword t JOIN banned b ON t.excerpt LIKE CONCAT_WS('', '%', b.word, '%') SET t.filter = 'BANNED' WHERE t.filter IS NULL;";
    PreparedStatement preparedStatement = connect.prepareStatement(query);
    preparedStatement.executeUpdate();
    preparedStatement.close();

我创建了与此类似的其他查询,并且它们有效。我错过了什么吗?

最佳答案

您需要使用 Connection.commit() 提交 SQL 语句

String query = "UPDATE keyword t JOIN banned b ON t.excerpt LIKE CONCAT_WS('', '%', b.word, '%') SET t.filter = 'BANNED' WHERE t.filter IS NULL;";
PreparedStatement preparedStatement = connect.prepareStatement(query);
preparedStatement.executeUpdate();
connect.commit();
preparedStatement.close();

关于java - MYSQL 更新表不适用于 Java 实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26096227/

相关文章:

java - 如何创建比较器?

mysql - 无法在表中设置外键

mysql - 简单的 Sphinx 和 mySQL 查询

java - 连接 MySQL 数据库中的对象

python - Django:save() vs update() 来更新数据库?

java - Android - 设置 ImageAdapter NullPointerException

java - filter和findFirst后map抛出异常需要继续过滤Java流

mysql - 用户的群组对话 mysql select for messages

php - Codeigniter - 如何避免用户多次登录将其 session 存储在数据库中

java - 我如何在我的 LAN 上找到另一台不可公开访问的计算机的正确 IP 地址?