在mysql上使用EntityManager JPA运行脚本
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了在mysql上使用EntityManager JPA运行脚本,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1811字,纯文字阅读大概需要3分钟。
内容图文
![在mysql上使用EntityManager JPA运行脚本](/upload/InfoBanner/zyjiaocheng/888/c489419f724f4f7689d9e10a00c5950c.jpg)
我正在尝试运行脚本(.sql文件),但是由于尝试了很多方法,我遇到了多个错误,这是我的主要sql脚本:
INSERT INTO `Unity` VALUES (11,'paq',0,'2013-04-15 11:41:37','Admin','Paquete','Paq',0,'2013-04-15 11:41:37','AAA010101AAA',NULL);
INSERT INTO `product` VALUES (11,'chi','USD','chi one',0,'2013-04-15 11:42:13',0,'Admin','Chi name',0.25,0,15,'2013-04-15 11:42:13','AAA010101AAA',NULL);
这是我的主要dao代码:
@Autowired
private EntityManager em;
@Override
public Integer runSql(String path) {
try {
Archivo archivo = new Archivo();
String strQuery = archivo.readFileText(path);
Query query = em.createNativeQuery(strQuery);
return query.executeUpdate();
} catch (IOException e) {
e.printStackTrace();
return 0; //TODO return false;
}
}
如果我仅使用一个插入来运行脚本,则它运行正常,但是当我的脚本具有多个插入时,会出现以下异常:
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 ‘INSERT INTOproducto_servicio
VALUES (11,’chi’,’USD’,’chi
one’,0,’2013-04-15 11:42:13′,0,” at line 2
有没有一种方法可以运行带有多个插入的脚本文件?
我也尝试过使用BEGIN,END和START TRANSACTION AND COMMIT,但效果不佳.
感谢您的帮助 :)
解决方法:
据我所知,您无法通过em.createNativeQuery执行脚本.
您应该将脚本拆分为语句,然后一个一个地执行它们.
您可以使用ScriptRunner.它可以与MyBatis分开使用.
例:
em.getTransaction().begin();
Connection connection = em.unwrap(Connection.class);
ScriptRunner sr = new ScriptRunner(connection);
sr.runScript(new StringReader("INSERT INTO `Unity` VALUES (11,'paq',0,'2013-04-15 11:41:37','Admin','Paquete','Paq',0,'2013-04-15 11:41:37','AAA010101AAA',NULL);\r\nINSERT INTO `product` VALUES (11,'chi','USD','chi one',0,'2013-04-15 11:42:13',0,'Admin','Chi name',0.25,0,15,'2013-04-15 11:42:13','AAA010101AAA',NULL);"));
em.getTransaction().commit();
内容总结
以上是互联网集市为您收集整理的在mysql上使用EntityManager JPA运行脚本全部内容,希望文章能够帮你解决在mysql上使用EntityManager JPA运行脚本所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。