我想使用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();
任何帮助,将不胜感激。
正如其他人所解释的, 您必须一个一个地运行这些查询。 休眠代码被转换为在JDBC上运行一条更新语句。 但是您提供了两个更新语句。 另外, 我个人更喜欢在某些数据库脚本中使用在Java应用程序之外创建表的代码。