在我的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();
我创建了与此类似的其他查询,但它们都有效。我错过了什么吗?
答案 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();