声明:适合新手,初学hibernate的同学参考...
关键词:hibernate 表不存在 hibernate插入不了数据 MySQLSyntaxErrorException: Table doesn't exist
背景:[我用的是Eclipse不是MyEclipse] 我在刚学hibernate的时候,写helloworld的项目时,一个原本简单的项目,我却花了很长时间去查错,出的错误是MySQLSyntaxErrorException: Table doesn't exist !
本来hibernate是可以自动创建表,自动插入数据(当然得进行配置了)。可是我的项目里面怎么都创建不了表!总是报错Table doesn't exist !
问题:使用 hibernate框架和 mysql数据库,不能自动创建表!(不存在拼写错误,代码完全正确的情况下!)
解决办法:
1.出错的地方:
(1)数据库方言配置为:
<property name="dialect">org.hibernate.dialect.MySQLInnoDBDialect</property>
2.更改为:
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
3.原因分析:
(1)hibernate自动发出 创建表的sql语句 最后会带有type=InnoDB
(2)5.X以后的版本就不支持type=INnoDB,支持engine= Innodb
(3)所以hibernate没办法创建表
大多数情况下学习的时候是跟着网上的学习视频来的,网上的教学视频基本上用的都是4.x的mysql ,所以那样配置数据库方言不会有问题,但是我们现在自己下载安装的mysql一般都是5.x,才会遇到这样的问题!希望对大家有帮助!
Ethan
2014-10-13