在myeclipse中使用hibernate连接mysql5.0或8.0版本

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/qq_41718454/article/details/89644371


一天的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&amp;serverTimezone=GMT&amp;characterEncoding=UTF-8&amp;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中;用&amp;表示。
connection.driver_class中驱动名要写com.mysql.cj.jdbc.Driver,8.0加载驱动名必须要加cj。

就是这么点问题,让我试了一个上午+下午,高版本害死人呜呜呜…也建议大家选择软件的时候使用目前的主流版本(通常不是官网上的最新版),不然你出了什么问题找教程都没得找。

请给我一个小赞笔芯

(转载请注明作者和链接)

猜你喜欢

转载自blog.csdn.net/qq_41718454/article/details/89644371