springboot项目因为Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@54946b63导致空指针异常问题
时间: 2023-12-01 20:42:46 浏览: 173
空指针异常
根据提供的引用内容,可以看出这个问题是由于非事务性的SqlSession关闭导致的空指针异常。解决这个问题的方法是将SqlSession的作用域设置为事务性的,以确保在事务完成之前不会关闭SqlSession。具体的解决方法如下:
1.在Mybatis的配置文件中,将SqlSessionFactory的配置改为如下所示:
```xml
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="configLocation" value="classpath:mybatis-config.xml" />
<<property name="transactionFactory" ref="transactionFactory" />>
</bean>
```
2.在Spring的配置文件中,将事务管理器的配置改为如下所示:
```xml
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource" />
</bean>
```
3.在需要使用SqlSession的地方,使用SqlSessionTemplate代替SqlSession,如下所示:
```java
@Autowired
private SqlSessionTemplate sqlSessionTemplate;
```
阅读全文