我第一次在IDEA中写Mybatis程序出现的问题

一、写Mybatis程序错误

1.1 错误1:xml的编码问题

我第一次在IDEA中写Mybatis程序出现的问题
我第一次在IDEA中写Mybatis程序出现的问题IDEA报错为:Caused by: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。

1.2 错误1的解决方案:

1.2.1 设置idea的默认编码和项目编码(建议使用)

方法一:依次点击File–Settings–Editor–File Encodings进行如下配置:
我第一次在IDEA中写Mybatis程序出现的问题
清除maven中的缓存后,然后重启idea,重新运行就可以了。

1.2.2 方法二:设置xml的编码
我第一次在IDEA中写Mybatis程序出现的问题 将<?xml version="1.0" encoding="UTF-8" ?>
修改为<?xml version="1.0" encoding="UTF8" ?>

2.1 错误2:sqlSessionFactory.openSession(的空指针异常问题

我第一次在IDEA中写Mybatis程序出现的问题
原因:在类中定义属性时,SqlSessionFactory对象是这样定义的: private static SqlSessionFactory sqlSessionFactory;
在静态代码块中又定义了
我第一次在IDEA中写Mybatis程序出现的问题
所以当在类中定义方法使用sqlSessionFactory.openSession()返回SqlSession对象时会返回null,导致空指针异常。
我第一次在IDEA中写Mybatis程序出现的问题

2.2 错误2的解决方案

我第一次在IDEA中写Mybatis程序出现的问题

3.1 错误3:连接MySQL配置useSSL后连接报证书不信任

IDEA报错:Caused by: java.security.cert.CertPathValidatorException: Path does not chain with any of the trust anchors

3.2 错误3的解决方案:

3.2.1 方法一:
(这种方法最简单)如果数据库所在的网络环境是绝对安全或者只是开发环境的情况下,可以直接忽略服务端证书信任验证。具体实现方法是在JDBC连接字符串中添加verifyServerCertificate=false参数。
例如我的:
“jdbc:mysql://localhost:3306/mybatis?useSSL=true&verifyServerCertificate=false&useUnicode=true&characterEncoding=UTF-8”

3.2.2 方法二:
将useSSL=true,修改为useSSL=false,也可以正常运行了。