数据库配置文件(db.properties)详解

在连接数据库的时候我们都要写数据库配置文件(db.properties)

其中,最主要的就是Driver和url

我们一般写Driver和url,都是像这样

jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/mybatis

但是其实Driver和url还有更详细的写法

1.JDBC驱动的版本号以及名称问题

Driver的写法是和mysql-connector-java的版本有关
我们之前一直用的都是 mysql-connector-java 5的包

    <!--mysql的驱动包-->
    <dependency>
      <groupId>mysql</groupId>
      <artifactId>mysql-connector-java</artifactId>
      <version>5.1.49</version>
    </dependency>

所有我们写的都是

com.mysql.jdbc.Driver

但是我们在 mysql-connector-java 6以上的版本时

com.mysql.cj.jdbc.Driver

不然有可能会导致连接数据库时会有错误

2.URL配置

正常的url是写成

jdbc.url=jdbc:mysql://localhost:3306/mybatis

但是在url后面最好要增加以下

jdbc.url=jdbc:mysql://localhost:3306/mybatis
?useUnicode=true&characterEncoding=utf8&serverTimezone=Asia/Shanghai&useSSL=false
其中,useUnicode=true&characterEncoding=utf8

添加的作用是:指定字符的编码、解码格式。

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

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

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

serverTimezone=Asia/Shanghai

表示的是时区为上海时间,也是东八区,也可以写成
serverTimezone=GMT%2B8
其中%2B表示的是+号,所有GMT%2B8即为GMT+8
表示的也是东八区,北京时间

如果时区没有设置好,可能会出现时差问题
在使用高版本的mysql的驱动jar包时,从mysql中查出的时候,时间可能都比数据库的时间多13小时,而且这些时间存到数据库的时间,有些是正确的时间,有时比正确时间少13小时,这样返回给前端的时间就不准确

useSSL=false

在测试sql语句的时候,发现会有如下警告,虽然不影响结果,但是这一串红色的警告就很烦
在这里插入图片描述

上面的警告的意思是:

警告:不建议在没有服务器身份验证的情况下建立SSL连接。根据MySQL 5.5.45+,如果没有设置显式选项,默认情况下必须建立5.6.26+和5.7.6+要求的SSL连接。您需要通过设置useSSL=false显式禁用SSL,或者设置useSSL=true并为服务器证书验证提供信任存储。

其原因就是需要指明是否进行SSL连接
如下就是添加useSSL=false
在这里插入图片描述

useSSL=false和true的区别:
SSL(Secure Sockets Layer 安全套接字协议),
在mysql进行连接的时候,如果mysql的版本是5.7之后的版本必须要加上useSSL=false,
mysql5.7以及之前的版本则不用进行添加useSSL=false,会默认为false,一般情况下都是使用useSSL=false,尤其是在将项目部署到linux上时,一定要使用useSSL=false!!!
useSSL=true是进行安全验证,一般通过证书或者令牌什么的,
useSSL=false就是通过账号密码进行连接,通常使用useSSL=false!!!

  • 4
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值