Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@54946b63导致空指针异常问题
时间: 2023-12-01 21:43:13 浏览: 92
根据提供的引用内容,这个问题可能与MyBatis的事务管理有关。当使用MyBatis时,如果在没有开启事务的情况下关闭SqlSession,就会出现“Closing non transactional SqlSession导致空指针异常”的问题。解决这个问题的方法是在使用SqlSession时开启事务,或者在关闭SqlSession之前提交事务。具体的解决方法可能因具体情况而异,可以参考以下几种方法:
1.在使用SqlSession时开启事务
```java
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
sqlSession.getConnection().setAutoCommit(false);
// 执行数据库操作
sqlSession.commit();
} catch (Exception e) {
sqlSession.rollback();
} finally {
sqlSession.close();
}
```
2.在关闭SqlSession之前提交事务
```java
SqlSession sqlSession = sqlSessionFactory.openSession();
try {
// 执行数据库操作
sqlSession.commit();
} catch (Exception e) {
sqlSession.rollback();
} finally {
sqlSession.close();
}
```
3.在MyBatis配置文件中配置事务管理器
```xml
<transactionManager type="JDBC"/>
```
阅读全文