Mybatis中,首先需要在主配置文件SqlMapConfig.xml中配置好数据库的连接参数,主要是四个参数:driver、url、username和password。
在配置和测试的过程中发现了以下几个问题,所以寻求解决方案:
显示乱码
仔细阅读以下可以发现是时区的问题。表示Mysql无法识别该时区或者存在多个时区,需要配置serverTimezone属性对时区进行修改。修改后如下:
<property name="driver" value="com.mysql.cj.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?serverTimezone=UTC"/>
此时再执行测试类就不会报相关错误了。
中文显示乱码
这个很多人也提到了,主要是useUnicode和characterEncoding这两个参数的问题,更进一步就是数据库的编码问题:
useUnicode | 是否使用Unicode字符集,如果参数characterEncoding进行修改的话,前提是useUnicode参数需设置为true |
---|---|
characterEncoding | 用于指定字符编码,常用的有utf-8、GB2312和GBK |
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"/>
带上这两个参数就可以了(需要将数据库编码也改为utf-8)。这里注意图片中“&”其实也报错,这里先按下不表,最后解决。
SSL连接验证问题
出现该问题的原因是已经建立了SSL的连接,但是没有进行身份验证,所以会报错,这里将SSL默认改为false就好:
<property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false"/>
符号&的转义
之前提到,符号&在语句中报错,出现如下问题:
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8&serverTimezone=UTC&useSSL=false"/>
综上,Mybatis使用JDBC连接数据库的基本错误就全部解决了。