小编典典

休眠多个本机SQL语句

java

我想使用Hibernate从文件运行本机SQL。SQL可以包含创建数据库结构的多个语句(即表,约束,但没有insert / update /
delete语句)。

示例,下面是一个非常简单的查询(包含以下两个SQL语句)

CREATE DATABASE test;
CREATE TABLE test.testtbl( id int(5));

我正在使用MySQL数据库,当我运行上述查询时,我返回了gettng语法错误。当我一一运行它们时,就可以了。

Caused by: 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 
'CREATE TABLE test.testtbl( id int(5))' at line 1

下面是运行查询的代码(上面的语句已分配给“ sql”变量):

session = sf.openSession();
session.beginTransaction();
Query qry = session.createSQLQuery(sql);
qry.executeUpdate();
session.getTransaction().commit();

任何帮助,将不胜感激。


阅读 220

收藏
2020-11-30

共1个答案

小编典典

正如其他人所解释的,
您必须一个一个地运行这些查询。
休眠代码被转换为在JDBC上运行一条更新语句。
但是您提供了两个更新语句。
另外,
我个人更喜欢在某些数据库脚本中使用在Java应用程序之外创建表的代码。

2020-11-30