美文网首页
Mybatis使用JDBC连接数据库报错及解决方案

Mybatis使用JDBC连接数据库报错及解决方案

作者: amcraft | 来源:发表于2020-05-10 22:46 被阅读0次

    Mybatis中,首先需要在主配置文件SqlMapConfig.xml中配置好数据库的连接参数,主要是四个参数:driver、url、username和password。


    1.PNG

    在配置和测试的过程中发现了以下几个问题,所以寻求解决方案:

    显示乱码

    2.PNG

    仔细阅读以下可以发现是时区的问题。表示Mysql无法识别该时区或者存在多个时区,需要配置serverTimezone属性对时区进行修改。修改后如下:


    3.PNG
    <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
    4.PNG
    <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8"/>
    

    带上这两个参数就可以了(需要将数据库编码也改为utf-8)。这里注意图片中“&”其实也报错,这里先按下不表,最后解决。

    SSL连接验证问题

    5.PNG

    出现该问题的原因是已经建立了SSL的连接,但是没有进行身份验证,所以会报错,这里将SSL默认改为false就好:


    6.PNG
    <property name="url" value="jdbc:mysql://localhost:3306/test?useSSL=false"/>
    

    符号&的转义

    之前提到,符号&在语句中报错,出现如下问题:


    7.PNG
    <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&amp;characterEncoding=UTF-8&amp;serverTimezone=UTC&amp;useSSL=false"/>
    

    综上,Mybatis使用JDBC连接数据库的基本错误就全部解决了。

    相关文章

      网友评论

          本文标题:Mybatis使用JDBC连接数据库报错及解决方案

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