mysql myisam_快速修复Hibernate的MySQL MyISAM类型SQLSyntaxErrorException

mysql myisam

对于开发人员而言,没有什么比Hibernate和JPA中SQLException更糟糕了。 没有什么比在任何持久性代码运行之前发生SQLException时更令人讨厌的了。 但是,当您要求JPA框架为您构建数据库时,如果开发人员看到“ type = MyISAM” SQLSyntaxErrorException,这就是发生的情况。 整个MySQL数据库创建脚本甚至在启动之前就已精疲力尽。

在这种情况下,主要问题是与MySQL安装不兼容的旧方言类。 开发人员可以通过方言更新来解决“ type = MyISAM” SQLSyntaxErrorException问题。 如果开发人员具有对MySQLDialect的引用,并且MySQL数据库比版本5更高,则会发生此SQLSyntaxErrorException问题。

使用MySQL8Dialect更新persistence.xml

如果开发人员使用persistence.xml文件 ,则将方言设置为属性之一:

<?xml version="1.0" encoding="UTF-8"?>
<persistence version="2.2" >
  <persistence-unit name="jpa-tutorial">
    <properties>
      <property name="javax.persistence.jdbc.driver" 
         value="com.mysql.jdbc.Driver"/>
      <property name="javax.persistence.jdbc.url" 
         value="jdbc:mysql://localhost/hibernate_examples"/>
      <property name=" hibernate.dialect " 
         value=" org.hibernate.dialect.MySQL8Dialect " />
      <property name = "javax.persistence.schema-generation.database.action" value = "drop-and-create" />
    </properties>
  </persistence-unit>
</persistence> 

如果更新persistence.xml文件并使用正确的MySQL方言进行安装,该错误将消失。

修复MySQL MyISAM异常

使用正确的方言修复Hibernate MySQL MyISAM类型错误。

MySQL方言和JDBC代码

如果开发人员使用Hibernate SchemaExport类,甚至只是编写MySQL JDBC代码 ,他们将需要深入研究Java代码以正确更新方言:

Map<String, String> settings = new HashMap<>();
    settings.put("connection.driver_class", 
       "com.mysql.jdbc.Driver");    settings.put("dialect", 
       "org.hibernate.dialect.MySQL8Dialect");
    settings.put("hibernate.connection.url",
       "jdbc:mysql://localhost/hibernate_examples");

Hibernate MySQLDialect类

在Hibernate 5.4版本发行版中,开发人员可以从以下MySQL方言列表中进行选择:

  • MySQL55方言
  • MySQL57方言
  • MySQL57InnoDBDialect
  • MySQL5方言
  • MySQL8方言
  • MySQL语言
  • MySQLInnoDBDialect
  • MySQLISAMDialect

为您的数据库选择正确的方言, MySQL'type = MyISAM'SQLSyntaxErrorException将会永久消失。

翻译自: https://www.theserverside.com/blog/Coffee-Talk-Java-News-Stories-and-Opinions/How-to-fix-the-MySQL-typeMyISAM-SQLSyntaxErrorException-in-Hibernate-and-JPA

mysql myisam

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值