美文网首页
如何进行数据池的连接

如何进行数据池的连接

作者: 扎实小男孩 | 来源:发表于2020-03-31 11:03 被阅读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.

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

    相关文章

      网友评论

          本文标题:如何进行数据池的连接

          本文链接:https://www.haomeiwen.com/subject/kdfmuhtx.html