gpt4 book ai didi

java - 一次执行多个 native 查询

转载 作者:可可西里 更新时间:2023-11-01 06:30:35 24 4
gpt4 key购买 nike

我想知道是否可以在 Hibernate (3.2) 中使用一个 SQLQuery#executeUpdate() 调用执行多个以分号分隔的 SQL 更新查询。

我的字符串包含多个这样的更新:

String statements = "UPDATE Foo SET bar=1*30.00 WHERE baz=1; 
UPDATE Foo SET bar=2*45.50 WHERE baz=2;...";

我正在努力

 Query query = session.createSQLQuery(statements);
query.executeUpdate();

但是一直报错

com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: 
You have an error in your SQL syntax; check the manual that corresponds to
your MySQL server version for the right syntax to use near
'UPDATE Foo SET bar=Y WHERE ' at line 3

如果我手动执行 statements 的内容,我不会出错,所以我假设多个以分号分隔的查询在 Hibernate 或 JDBC 中的某个地方引起了问题。

只是拆分 statements 字符串并为每一行分别执行 createSQLQuery(statement).executeUpdate() 是否更好?

最佳答案

另一种方法是使用 CASE 语句。例如:

UPDATE Foo
SET bar =
CASE baz
WHEN 1 THEN 'X'
WHEN 2 THEN 'Y'
END CASE
WHERE baz in (1,2)

关于java - 一次执行多个 native 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6734423/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com