我第一次在IDEA中写Mybatis程序出现的问题
一、写Mybatis程序错误
1.1 错误1:xml的编码问题
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进行如下配置:
清除maven中的缓存后,然后重启idea,重新运行就可以了。
1.2.2 方法二:设置xml的编码 将<?xml version="1.0" encoding="UTF-8" ?>
修改为<?xml version="1.0" encoding="UTF8" ?>
2.1 错误2:sqlSessionFactory.openSession(的空指针异常问题
原因:在类中定义属性时,SqlSessionFactory对象是这样定义的: private static SqlSessionFactory sqlSessionFactory;
在静态代码块中又定义了
所以当在类中定义方法使用sqlSessionFactory.openSession()返回SqlSession对象时会返回null,导致空指针异常。
2.2 错误2的解决方案
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,也可以正常运行了。