Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)

Hibernate新手数据库连接的小问题

---mysql-connector-java-8.0.18 ---

org.hibernate.service.spi.ServiceException: Unable to create requested service 等等问题......
首先我们知道大概是每个版本兼容性,可能是为了得瑟,一方升级了高版本,变厉害了以后呢就不能和以前的老版本朋友一起玩耍了^_^。二是版本升级肯定会有功能的变化,会产生兼容性问题,貌似这才是重点。

  1. com.mysql.cj.jdbc.Driver,这个mysql8版本就要把原来的com.mysql.jdbc.Driver替换了哦。

  2. jdbc:mysql:///你的数据库?useSSL=false&serverTimezone=UTC就是一定不要忘了设置时区啥的,就是8.x版本多增加了几个参数要设置。

  3.  org.hibernate.dialect.MySQL8Dialect方言看别人都说设置下,发现这个关系不大,但是还是设置保险。MySQL8Dialect、MySQL5Dialect、MySQLDialect我试了一下,反正都能成功

  4. mysql-connector-java-8.xx.xx.jar ,补充一下就是驱动包找适合自己数据库版本的.

  5. XXXX 最后就是有点同学看网上配置,或者教程啥的,别忘了密码是自己数据库密码哦,不要生搬硬套。

So,Everything is gonna be fine!

 

JDBC连接数据库 mysql serverTimezone useSSL 时差

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/love20yh/article/details/80799610

驱动包用的是mysql-connector-java-8.0.11.jar
新版的驱动类改成了com.mysql.cj.jdbc.Driver
新版驱动连接url也有所改动
I、指定时区

//北京时间东八区
serverTimezone=GMT%2B8 

这个时区要设置好,不然会出现时差,
如果你设置serverTimezone=UTC,连接不报错,
但是我们在用java代码插入到数据库时间的时候却出现了问题。
比如在java代码里面插入的时间为:2018-06-24 17:29:56
但是在数据库里面显示的时间却为:2018-06-24 09:29:56
有了8个小时的时差
UTC代表的是全球标准时间 ,但是我们使用的时间是北京时区也就是东八区,领先UTC八个小时。

//北京时间东八区
serverTimezone=GMT%2B8 
//或者使用上海时间
serverTimezone=Asia/Shanghai

为何没有asia/beijing时区?
II、指定是否用ssl连接,true值还报错了

useSSL=false

完整代码:

Class.forName("com.mysql.cj.jdbc.Driver");

        String url="jdbc:mysql://localhost:3306/mydb3?serverTimezone=GMT%2B8&useSSL=false";
        String user="root";
        String password="123";

        Connection connection = DriverManager.getConnection(url, user, password);

        System.out.println(connection);
  • 1

1、导包mysql-connector-java-8.0.11.jar
2、加载驱动类

Class.forName("com.mysql.cj.jdbc.Driver");
  •  

3、定义url,user,password

String url="jdbc:mysql://localhost:3306/mydb3?serverTimezone=GMT%2B8&useSSL=false";
        String user="root";
        String password="123";

4、通过DriverManager.getConnection得到connection

Connection connection = DriverManager.getConnection(url, user, password);

--------------2020.06.06------------

js页面中文乱码问题

问题:页面内容能正常显示,但是凡是通过JS实现动态显示、渲染的内容都呈现乱码,如下所示,可以发现在下面大部分内容可以正常显示,但是有些地方呈现乱码:
Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)_第1张图片

解决过程:原始简单暴力。把开发工具的编码、服务器编码、项目编码都统一:

一、统一服务器编码,由于这里用的是Tomcat服务器,所以以tomcat为例进行设置,在服务器中有两处需要设置:

    找到tomcat的bin目录下的catalina.bat并编辑,新增-Dfile.encoding=utf-8
    找到tomcat的conf目录下的server.xml并编辑,修改你项目用到的端口所对应的Connector,比如我这边用到的是8080端口,那  么修改后内容如下:
                       connectionTimeout="20000"
                   redirectPort="8443" URIEncoding="utf-8" />

二、设置开发工具编码,找到IDEA的安装文件夹的bin目录,如下所示:

Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)_第2张图片

我这里修改的是idea64.exe.vmoptions文件,通过编辑器编辑该文件,在文件内容单独起最后一行,输入

-Dfile.encoding=utf-8

三、设置全局和项目编码,如下图所示,图中标有数字的地方都需要设置:

Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)_第3张图片

四、设置TOMCAT启动项目时用到的VM option,如下图所示:

 Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)_第4张图片

Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)_第5张图片

五、MAVEN项目编码设置,找到pom.xml文件中的properties元素,添加如下内容:
UTF-8

IntelliJ IDEA 统一设置编码为utf-8编码

问题一:

File->Settings->Editor->File Encodings

Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)_第6张图片

问题二:

File->Other Settings->Default Settings ->Editor->File Encodings

Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)_第7张图片
问题三:
将项目中的.idea文件夹中的encodings.xml文件中的编码格式改为uft-8

问题四:

File->Settings->Build,Execution,Deployment -> Compiler -> Java Compiler

设置 Additional command line parameters选项为 -encoding utf-8

Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)_第8张图片

问题五:

1)打开Run/Debug Configuration,选择你的tomcat

2) 然后在  Server > VM options 设置为 -Dfile.encoding=UTF-8 ,重启tomcat

Hibernate新手问题,关于Mysql8.X版本和Hibernate5.X配置问题(数据库连接不上)_第9张图片

问题六:

清空浏览器缓存再试一次。清空浏览器缓存再试一次。清空浏览器缓存再试一次。清空浏览器缓存再试一次。

你可能感兴趣的:(各种小问题,mysql,hibernate)