hibernate连接mysql
一天的debug之旅结束,总算是在myeclipse上用hibernate连接mysql8.0成功了。各种坑各种踩,果然软件还是老版本的好,配置起来没有那么麻烦呜呜呜。
mysql5.0以上
这部分在网上教程就比较多,资源也多。
myeclipse连接数据库
打开myeclipse中database explorer透视图,然后在DB browser中new一个连接,然后Driver template选mysql,大概是这样。
这里Driver name写你要连接的数据库的名字然后其他正常填。
Jars要添加一个5.0版本的mysql jar包,然后就可以选加载驱动名com.mysql.jdbc.Driver
一路下一步就ok。
搭建hibernate
在创建的hibernate.cfg.xml的connection.url里,url遵循正常的格式jdbc:mysql://hostname:3306/dbname,connection.driver_class用com.mysql.jdbc.Driver即可成功完成加载hibernate.cfg.xml文件的功能。
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306/bookstore
</property>
<property name="connection.username">root</property>
<property name="connection.password">123</property>
<property name="connection.driver_class">
com.mysql.jdbc.Driver
</property>
8.0以上
这部分教程较少,部分常见问题也很难找到解决方法。
myeclipse连接数据库
与5.0的基本都相同,jar包还是5.0的(后面项目连接的时候就不行了)。只有一点不同,那就是connection url后面要加上这个→?useUnicode=true&serverTimezone=GMT&characterEncoding=UTF-8&useSSL=false 其实这个也可以不加。
搭建hibernate
因为使用的数据库是mysql8.0以上版本,所以在导入相应的数据库jar包时应该选择8.0以上jar包mysql-connector-java-8.0.13-bin.jar
在hibernate.cfg.xml文件中标签的内容要写成
<property name="dialect">
org.hibernate.dialect.MySQLDialect
</property>
<property name="connection.url">
jdbc:mysql://localhost:3306DBname?useUnicode=true&serverTimezone=GMT&characterEncoding=UTF-8&useSSL=false
</property>
<property name="connection.username">root</property>
<property name="connection.password">123456</property>
<property name="connection.driver_class">
com.mysql.cj.jdbc.Driver
</property>
即正常来讲dbname后面要加上useUnicode=true&serverTimezone=GMT&characterEncoding=UTF-8&useSSL=false,会提示The reference to entity “serverTimezone” must end with the ‘;’ delimiter. 运行后控制台也会出现对实体 “serverTimezone” 的引用必须以 ‘;’ 分隔符结尾的错误提示。 意思是让在每两个属性中间加入分号,在xml中;用&表示。
connection.driver_class中驱动名要写com.mysql.cj.jdbc.Driver,8.0加载驱动名必须要加cj。
就是这么点问题,让我试了一个上午+下午,高版本害死人呜呜呜…也建议大家选择软件的时候使用目前的主流版本(通常不是官网上的最新版),不然你出了什么问题找教程都没得找。
请给我一个小赞笔芯
(转载请注明作者和链接)