关于org.hibernate.exception.GenericJDBCException: Unable to open JDBC Connection for DDL execution错误

使用MySQL8的时候出现 org.hibernate.exception.GenericJDBCException: Unable to open JDBC Connection for DDL execution错误。
配置文件出现了问题,与mysql 5的配置文化出现了不同
首先驱动要下载 mysql-connector-java-8.0.16.jar 点击可直接下载,官网下载也可以找到。
然后以下三项配置项出现区别,驱动包,方言和URL,驱动的包名有所变化,其中 url 的 serverTimezone=Asia/Shanghai不可少,这是MySQL8新增要求,否则会报错,而5.7以下则不需要。这是设置时区,可以更改为其它时区,这里是GMT+8上海时。
这里使用的hibernate框架的配置,如果不用则需要一定的修改。但和MySQL5配置方面应该就有如下三个区别。

<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/blog?useUnicode=true&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=UTF-8&amp;useSSL=false</property>
<property name="dialect">org.hibernate.dialect.MySQL8Dialect</property>
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver </property>

以下是我的hibernate配置文件

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE hibernate-configuration PUBLIC   
          "-//Hibernate/Hibernate Configuration DTD 3.0//EN"   
          "http://hibernate.sourceforge.net/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
	<!--表明以下的配置是针对session-factory配置的,SessionFactory是Hibernate中的一个类,这个类主要负责保存HIbernate的配置信息,以及对Session的操作 -->
	<session-factory>
		<!-- 根据hibernate维护表结构方法,这里是更新 -->
		<property name="hibernate.hbm2ddl.auto">update</property>
		<!-- mysql 5请改配置为  com.mysql.jdbc.Driver -->
		<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver </property>
		<!--设置数据库的连接jdbc:mysql://localhost:3306/dbname?useUnicode=true&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=UTF-8&amp;useSSL=false,其中localhost表示mysql服务器名称,此处为本机,dbname是数据库名 若serverTimezone=Asia/Shanghai不写则会报错-->
			
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/blog?useUnicode=true&amp;serverTimezone=Asia/Shanghai&amp;characterEncoding=UTF-8&amp;useSSL=false</property>
		<!--连接数据库是用户名 -->
		<property name="hibernate.connection.username">root </property>
		<!--连接数据库是密码 -->
		<property name="hibernate.connection.password">123456 </property>
		
		<!--hibernate.dialect 只是Hibernate使用的数据库方言,就是要用Hibernate连接那种类型的数据库服务器。 -->
		
		<!--mysql 5请改配置为 org.hibernate.dialect.MySQL5Dialect </property> -->
		<property name="hibernate.dialect">org.hibernate.dialect.MySQL8Dialect</property>
		
		<!-- jdbc.use_scrollable_resultset是否允许Hibernate用JDBC的可滚动的结果集。对分页的结果集。对分页时的设置非常有帮助 
			<property name="jdbc.use_scrollable_resultset">false </property> -->

		<!--connection.characterEncoding连接数据库时数据的传输字符集编码方式, -->
		<property name="connection.characterEncoding">utf-8 </property>
		<property name="cache.use_second_level_cache">false</property>
		<!--是否在后台显示Hibernate用到的SQL语句,开发时设置为true,便于差错,程序运行时可以在Eclipse的控制台显示Hibernate的执行Sql语句。项目部署后可以设置为false,提高运行效率 -->
		<property name="hibernate.show_sql">true </property>
	</session-factory>
</hibernate-configuration>  
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值