關於org.hibernate.exception.GenericJDBCException: Unable to open JDBC Connection for DDL execution錯誤


使用mysql 8的時候出現 org.hibernate.exception.GenericJDBCException: Unable to open JDBC Connection for DDL execution錯誤
配置文件出現了問題,與mysql 5的配置文化出現了不同
首先驅動要下載 mysql-connector-java-8.0.16.jar 點擊可直接下載,官網也可以找到
然后以下兩項配置項出現區別,其中 url 的 serverTimezone=Asia/Shanghai不可少,否則會報錯,而5.7以下則不需要。這是設置時區,可以更改為其它時區,zheli是GMT+8上海時。

<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.MySQL5Dialect</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=GMT&amp;characterEncoding=UTF-8&amp;useSSL=false,其中localhost表示mysql服務器名稱,此處為本機,dbname是數據庫名 若serverTimezone=GMT不寫則會報錯-->
			
		<property name="hibernate.connection.url">jdbc:mysql://localhost:3306/blog?useUnicode=true&amp;serverTimezone=GMT&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="dialect">org.hibernate.dialect.MySQL5Dialect</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>  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM