初学mybatis中遇到的一些问题
初学mybatis中遇到的一些问题
文档的基本结构:

1.java.lang.NullPointerException出现空指针问题

mybatis工具类中前面已经定义了私有的SqlSessionFactory
private static SqlSessionFactory sqlSessionFactory;
把mybatis工具类中
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
改为
sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
成功解决;
空指针出现的原因参考:https://blog.csdn.net/qq_44543508/article/details/94589868
Cause: com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: 1 字节的 UTF-8 序列的字节 1 无效。
将所有UserMapper.xml和mybatis-config.xml中“UTF-8”改为“UTF8”
3.UserMapper.xml找不到
在父工程和子工程的pom.xml中配置:
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
</resources>
</build>
4.mybatis连接数据库问题,如果你的mysql版本是5.6,在添加数据库中设置如下Driver选择for5.1:

5.绑定接口错误
错误类型
org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.imooc.o2o.dao.PersonInfoDao.getPersonInfoById
UserMapper.xml的namespace写错了:

写出接口的正确位置,程序运行成功;
6.连接数据库:
<property name="url" value="jdbc:mysql://localhost:3306/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8"/>
useSSL=true,useUnicode=true,characterEncoding=UTF-8每一个的后面如果还有东西必须写&,写成&会报错,最后一个不需要写&。

浙公网安备 33010602011771号