hiberante学习笔记(一)

第一次运行程序时,将Hibernte中的hibernate.hbm2ddl.auto设置成create,让Hibernate帮助自动建表,但不成功,报了如下信息:

    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 'type=InnoDB' at line 1

    我很纳闷,为什么之前没有这样的问题呢?难道是建表语句语法有误?对比后,似乎不是。后来再仔细阅读报错信息,目光定位在“MySQL server version for the right syntax ”!!

    后来,网上查找一番,发现是因为type=InnoDB在5.0以前是可以使用的,但5.1之后就不行了。如果我们把type=InnoDB改为engine=InnoDB就不会有这个问题。但是,我想使用Hibernate,自动帮我建表,怎么办呢。这就与我们指定的数据库方言(dialect)有关了。

    之前我的配置是:
    <prop key="hibernate.dialect">org.hibernate.dialect.MySQLInnoDBDialectprop> 
     现在改为
    
<prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialectprop>  

    
 好了,这样问题就解决了。总结下:

    hibernate中,对于mysql version5.1~5.5,都是‘MySQL5InnoDBDialect’  !!

【以上内容,来源:http://blog.itpub.net/29900383/viewspace-1407348/】

    网上很多人都说这种方法,但是我在文档中没找到MySQL5InnoDBDialect,本来以为是版本太低(我用的是hibernate 4.2.4Final+MySQl 5.7)并且下载了新版本之后也没有,于是放弃,决定重新下载低版本的mysql.于是解决问题了。

mysql历史版本:

http://downloads.mysql.com/archives/community/



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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值