作者:白色的睡 | 来源:互联网 | 2023-02-05 10:47
我的Java代码出现此错误
Caused by :`com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException`: You have an error in your SQL syntax; check the manual that corresponds to your MariaDB` server version for the right syntax to use near 'type = `MyISAM`' at line 1
这是hibernate传递的查询:
Hibernate: create table EMPLOYEE (emp_id integer not null, FNAME varchar(255), LNAME varchar(255), primary key (emp_id)) type=MyISAM
我查看了与此错误相关的所有问题.但是在所有问题中,用户本身都在传递查询" type = MyISAM
",因此他们可以将" type
"改为" engine
",但是这里hibernate负责创建表,所以我不明白错误在哪里,以及我如何解决它.
这是我的配置文件:
create
com.mysql.jdbc.Driver
jdbc:mysql://localhost/servletcheck
root
org.hibernate.dialect.MySQLDialect
true
这是我的映射文件:
这是我的类文件:
public class StoreData {
public static void main(String[] args) {
Configuration cfg=new Configuration();
cfg.configure("hibernate.cfg.xml");
SessionFactory factory=cfg.buildSessionFactory();
Session session=factory.openSession();
org.hibernate.Transaction t=session.beginTransaction();
Employee e=new Employee();
e.setId(1);
e.setFname("yogesh");
e.setLname("Meghnani");
session.persist(e);
t.commit();
}
}
Mark Rotteve..
99
问题是方言org.hibernate.dialect.MySQLDialect
适用于MySQL 4.x或更早版本.TYPE=MYISAM
此方言生成的片段在MySQL 4.0中已弃用,在5.5中已删除.
鉴于您使用MariaDB,您需要使用(取决于MariaDB的版本和 - 可能 - Hibernate的版本)之一:
org.hibernate.dialect.MariaDBDialect
org.hibernate.dialect.MariaDB53Dialect
如果您使用的是MySQL,或者您的Hibernate版本中不存在MariaDB的上述两种方言:
org.hibernate.dialect.MySQL5Dialect
org.hibernate.dialect.MySQL55Dialect
org.hibernate.dialect.MySQL57Dialect
Brajesh..
14
它是一个方言相关的问题,而不是org.hibernate.dialect.MySQLDialect
你可以去org.hibernate.dialect.MySQL5Dialect
.它会愉快地工作.
1> Mark Rotteve..:
问题是方言org.hibernate.dialect.MySQLDialect
适用于MySQL 4.x或更早版本.TYPE=MYISAM
此方言生成的片段在MySQL 4.0中已弃用,在5.5中已删除.
鉴于您使用MariaDB,您需要使用(取决于MariaDB的版本和 - 可能 - Hibernate的版本)之一:
org.hibernate.dialect.MariaDBDialect
org.hibernate.dialect.MariaDB53Dialect
如果您使用的是MySQL,或者您的Hibernate版本中不存在MariaDB的上述两种方言:
org.hibernate.dialect.MySQL5Dialect
org.hibernate.dialect.MySQL55Dialect
org.hibernate.dialect.MySQL57Dialect
2> Brajesh..:
它是一个方言相关的问题,而不是org.hibernate.dialect.MySQLDialect
你可以去org.hibernate.dialect.MySQL5Dialect
.它会愉快地工作.