如何进行数据池的连接

2020-03-31  本文已影响0人  扎实小男孩

各位道友大家好呀,我们又见面啦!
疫情期间大家是否响应了国家的号召,做到了停课不停学呢?
下面我们一起来学习一下吧!
那我们一起来探讨一下作者最近遇到的一些问题吧!


druid.Properties 文件

#JDBC驱动
driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://127.0.0.1:3306/tableName
#数据库登录名称
username=root
#数据库登录密码
password=123456
# 初始化连接数量
initialSize=5
# 最大连接数
maxActive=10
# 最大超时时间
maxWait=3000

问题轰炸拆弹专家 步步为营

字符集的编码问题

错误:Unknown initial character set index '255' received from server. Initial client character set can be forced via the 'characterEncoding' property.

jdbc:mysql://127.0.0.1:3306/tableName?useUnicode=true&characterEncoding=utf8

mysql数据库用的是gbk编码,而项目数据库用的是utf-8编码。这时候如果添加了useUnicode=true&characterEncoding=UTF-8,作用有如下两个方面:

1. 存数据是时

数据库在存放项目数据的时候会先用UTF-8格式将数据解码成字节码,然后再将解码后的字节码重新使用GBK编码存放到数据库中。

2. 取数据时

在从数据库中取数据的时候,数据库会先将数据库中的数据按GBK格式解码成字节码,然后再将解码后的字节码重新按UTF-8格式编码数据,最后再将数据返回给客户端。

参数

数据库驱动jdbc版本问题

错误:Unknown system variable 'tx_isolation'
老版本的MySQL用的是tx_isolation,新版本的MySQL,例如我装的是MySQL 8.0版本的,现在更名为 transaction_isolation,主要问题是无法识别系统变量。

解决: 更换JDBC驱动,更换jar包

驱动:com.mysql.cj.jdbc.Driver

jar包:mysql-connector-java-8.0.17.jar点击下载

时区问题

错误:The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

jdbc:mysql://127.0.0.1:3306/tableName?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT

GMT 是格林尼治标准时间
UTC 协调世界时间
在设定时区的时候,如果设定serverTimezone=UTC,会比中国时间早8个小时,如果在中国,可以选择Asia/Shanghai或者Asia/Hongkong


以上是作者在一次实际操作中遇到的一连串按顺序发生的问题,并不只是作者本人一个人遇到了同样的问题,在作者身边也有一些朋友遇到了同样的问题,也找到了我,问题和顺序都是一模一样的出现,当时脑子里就浮现了要写这么一篇解决问题的文章了。

下面是有关于MySQL版本和JDBC驱动的一些问题综述希望对大家能有一些帮助。


MySQL版本问题

错误:Could not create connection to database server.
MySQL 8.0版本需要更换驱动为“com.mysql.cj.jdbc.Driver”,而以前的“com.mysql.jdbc.Driver”MySQL 8.0版本不再使用。详细可查看官方文档.

JDBC驱动问题

com.mysql.jdbc.Drivermysql-connector-java 5以及以下版本使用的;com.mysql.cj.jdbc.Drivermysql-connector-java 5以上版本使用的。

com.mysql.jdbc.Driver 的使用

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456

com.mysql.cj.jdbc.Driver 的使用

driverClassName=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=utf8&serverTimezone=GMT
username=root
password=123456

注意:

  1. 使用驱动com.mysql.jdbc.Driver导入的jar包要是mysql-connector-java 5以下(包括5)的才能正常运行;
  2. 同样,使用驱动com.mysql.cj.jdbc.Driver导入的jar包要是mysql-connector-java 5以上的才能正常运行;
  3. 使用驱动com.mysql.cj.jdbc.Driver时需要指定时区`serverTimezone.

以上是作者本期的全部分享,希望对各位同道小伙伴们有所帮助。欢迎讨论区一起探讨一起学习哟!

上一篇下一篇

猜你喜欢

热点阅读