• 关于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>  
    
    更好的体验请访问:xfx98.github.io 
     
    好文要顶 关注我 收藏该文  
  • 相关阅读:
    mongodb浅析
    java8学习的一点总结
    mysql 存储引擎对索引的支持
    Ubuntu16.04下安装OpenCV2.4.13
    windows配置远程桌面连接到ubuntu
    Ubuntu16.04调整屏幕分辨率至1920*1080
    Ubuntu 16.04 安装NodeJs
    Ubuntu安装SSH服务
    基于MNIST数据集使用TensorFlow训练一个包含一个隐含层的全连接神经网络
    基于MNIST数据集使用TensorFlow训练一个没有隐含层的浅层神经网络
  • 原文地址:https://www.cnblogs.com/roak/p/14527247.html
Copyright © 2020-2023  润新知