第一个MyBatis遇到的坑:空指针异常,MapperRegistry,资源导出问题...
2020-07-28 09:17
1831 查看
1.获取SqlSession空指针异常
报错
1.getSqlSession空指针异常 java.lang.NullPointerException at com.bang.utils.MyBatisUtils.getSqlSession(MyBatisUtils.java:24 2.找不到MyBatis配置文件 java.io.IOException: Could not find resource org/mybatis/example/mybatis-config.xml
问题:工具类写错了或者资源文件没有被标记
public class MyBatisUtils { private static SqlSessionFactory sqlSessionFactory; static { try { String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream); } catch (IOException e) { e.printStackTrace(); } } public static SqlSession getSqlSession(){ return sqlSessionFactory.openSession(); } }
1.通常配置文件mybatis-config.xml,放在resources目录下,这个直接写 String resource = “mybatis-config.xml”;,如果放到其他目录下,要加上具体目录的位置。
2.(遇到的坑)上面
private static SqlSessionFactory sqlSessionFactory;已经提升了作用域,要把下面的 SqlSessionFactory去掉,不然报空指针异常。
//改成 sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
3.(如果是手动创建)检查resources是否标记为默认资源文件
2、没有注册Mapper
在MyBatis-config.xml中注册
<mappers> <mapper resource="com/bang/dao/UserMapper.xml"></mapper> </mappers>
3、Mapper.xml资源导出失败的问题
如果Mapper.xml文件没有放到resources目录(项目默认资源文件)下,而是放到java目录下,它在运行时会无法被导出或者生效。
解决
我们只需要在pom.xml下添加build
<!--在build中配置resources,来防止我们资源导出失败的问题--> <build> <resources> <resource> <directory>src/main/java</directory> <includes> <include>**/*.xml</include> </includes> </resource> </resources> </build>
相关文章推荐
- 使用idea学习SpringBoot整合Mybatis,遇到mapper无法注入的问题
- 在idea里使用SpringBoot整合MyBatis时遇到的Mapper扫描不到的问题
- idea上mybatis遇到的mapper扫描问题
- 我遇到的一些问题(空指针异常、jsp页面传值)
- mybatis-spring集成:配置多数据库源中遇到的问题--MapperScannerConfigurer配置
- MyBatis的学习 (1) -- 第一个MyBatis程序详细步骤和遇到的问题
- 学习狂神Mybatis第一个项目中遇到的问题
- 在使用Myeclipse时遇到由于删除action而引发的空指针异常问题的解决方法
- IDEA中使用mybatis-generator自动生成mapper和pojo文件时遇到的【GeneratorMapper.xml does not exist】问题
- Mybatis之mapper xml遇到的问题
- mybatis遇到的一个问题Result Maps collection already contains value for com.schooldevice.dao.DeviceMapper.
- mybatis问题is not known to the MapperRegistry
- MyBatis使用foreach进行批量插入遇到的问题以及解决方法
- Maven资源导出问题
- 使用java和mybatis时遇到的数据无法插入问题
- (转)问题:假设一个没有头指针的单链表。一个指针指向此单链表中间的一个节点(既不是第一个,也不是最后一个节点),请将该节点从单链表中删除。
- 工作中遇到的问题之tomcat启动异常
- 使用springmvc+mybatis时遇到的问题总结
- 记录Maven和Mybatis整合时打包漏掉mapper的xml文件及其它资源
- ABP的第一个程序和遇到的一些问题