MYSQL更新表不适用于Java实现

时间:2014-09-29 09:07:32

标签: 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中实现此查询时,代码运行完美(没有错误,没有异常),但实际上DB没有更新,因为它使用的是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();

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

1 个答案:

答案 0 :(得分:0)

您需要使用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();