Hibernate Dialect 和 XAMPP 的问题(MySQL-MariaDB)

Posted

技术标签:

【中文标题】Hibernate Dialect 和 XAMPP 的问题(MySQL-MariaDB)【英文标题】:Troubles with Hibernate Dialect and XAMPP (MySQL-MariaDB) 【发布时间】:2020-12-26 14:39:57 【问题描述】:

我想将我的 Java 应用程序连接到 mysql 数据库。为此,我使用 XAMPP 附带的 MySQL DB。此外,我使用休眠。我已经通过 PostgreSQL 成功地持久化了我的应用程序,但是 MySQL 导致了问题,因为我没有找到正确的方言,尽管我已经尝试了很多不同的方言。

Hibernate: 创建表 keytype (id bigint not null, 主键 (id)) engine=MyISAM 原因:java.sql.SQLSyntaxErrorException:您的 SQL 语法有错误;检查与您的 MariaDB 服务器版本相对应的手册,以在 'key (id bigint not null, idType varchar(255), local bit not null, type varchar(2' at line 1) 附近使用正确的语法

<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</property>
compile group: 'mysql', name: 'mysql-connector-java', version: '8.0.21'
compile group: 'org.hibernate', name: 'hibernate-core', version: '5.4.15.Final'
compile group: 'org.eclipse.persistence', name: 'javax.persistence', version: '2.2.1'

数据库

DBMS: MySQL (ver. 5.5.5-10.4.11-MariaDB)
Case sensitivity: plain=lower, delimited=lower
Driver: MySQL Connector/J (ver. mysql-connector-java-8.0.21 (Revision: 33f65445a1bcc544eb0120491926484da168f199), JDBC4.2)
Effective version: MariaDB (ver. 10.4.11)

【问题讨论】:

【参考方案1】:

我想如果你说你尝试过很多方言,你就会尝试过

org.hibernate.dialect.MariaDBDialect org.hibernate.dialect.MariaDB53Dialect

所以很可能问题出在连接器上。您可以尝试使用 5.1 版本

https://dev.mysql.com/downloads/connector/j/5.1.html

【讨论】:

两种方言我都试过了,但都不管用。我也再次尝试过,不幸的是没有成功。我将 Conncetor 设置为 5.1 版本并尝试了 Mysql 和 Mariadb 方言,不幸的是它仍然无法正常工作。

以上是关于Hibernate Dialect 和 XAMPP 的问题(MySQL-MariaDB)的主要内容,如果未能解决你的问题,请参考以下文章

Hibernate的dialect大全

HQL 异常 (org.hibernate.dialect.Dialect$3)

hibernate.Dialect

hibernateHibernate SQL 方言(hibernate.dialect)

用于 HSQL 的宠物诊所 hibernate.dialect

Hibernate SQL方言 (hibernate.dialect) Spring配置文件applicationContext.xml