当前位置: 首页 > 面试题库 >

Hibernate多个本机SQL语句

郑茂材
2023-03-14
问题内容

我想使用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();

任何帮助,将不胜感激。


问题答案:

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



 类似资料:
  • 问题内容: 我想使用Hibernate从文件运行本机SQL。SQL可以包含创建数据库结构的多个语句(即表,约束,但没有insert / update / delete语句)。 示例,下面是一个非常简单的查询(包含以下两个SQL语句) 我正在使用MySQL数据库,当我运行上述查询时,我返回了gettng语法错误。当我一一运行它们时,就可以了。 下面是运行查询的代码(上面的语句已分配给“ sql”变量

  • 问题内容: 我目前正在制作一份报告,向我显示我们销售团队涵盖的所有邮政编码。 每个团队涵盖100多个邮政编码。我想做的是创建一个报告,将邮政编码内的客户带回去。目前,我的代码如下所示。 我希望的是有一种更快,更轻松的方式来做到这一点。任何建议将不胜感激。有没有一种方法可以为每个销售团队创建变量,例如 只是在钓鱼的想法。干杯 问题答案:

  • 问题内容: 我有一张表格,其中包含有关零售店的信息。我有一个零售链名称的列表(WalMart,Target,Eaton等)。当用户选择一个时,我基本上会运行一个查询来查找与该链有关的任何内容。 例如,如果用户选择“ WalMart”,则查询将返回名称中带有单词“ WalMart”的任何内容(WalMart Scarborough,WalMart Supercenter Toronto,WalMar

  • 问题内容: 我正在使用,并且 一直在尝试使用hibernate模式执行sql查询。我写过: 该查询不在数据库中执行。但是如果我写 相应的行将添加到表中。为什么hibernate不起作用,但是本机查询和JDBC一起起作用? 问题答案: 这应该对您有帮助。

  • 问题内容: 我有一个带有数据库转储的SQL脚本。如何使用Hibernate执行它? 我这样尝试过: 但是它仅在包含单个SQL查询且我需要运行多个插入和其他复杂内容时才有效。 RDBMS:Oracle数据库11g快捷版11.2.0.2.0版-64位生产 问题答案: 用开始结束块包装查询。喜欢

  • 我想这个问题最好用一个例子来描述: 假设我想对一个元素应用margin,如下所示: 在没有多个边际报表的情况下,有可能做到这一点吗? 感谢阅读。