如何解决JDBC Connection [com.mysql.cj.jdbc.ConnectionImpl@29f7045e] will not be managed by Spring ==> Preparing: SELECT id,name,password FROM ssm_user WHERE (name = ?) ==> Parameters: null <== Total: 0 Closing non transactional SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@3d63f5cc]
时间: 2023-12-10 07:42:20 浏览: 447
这个问题通常是由于在没有事务管理的情况下使用了MyBatis引擎而导致的。解决这个问题的方法是将MyBatis引擎的事务管理交给Spring来管理。你可以在Spring的配置文件中添加如下代码来解决这个问题:
```
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<property name="dataSource" ref="dataSource" />
<property name="transactionFactory">
<bean class="org.apache.ibatis.transaction.managed.ManagedTransactionFactory" />
</property>
<property name="configLocation" value="classpath:mybatis-config.xml" />
</bean>
```
其中,`ManagedTransactionFactory`是MyBatis提供的一个事务管理工厂。通过将其配置到`SqlSessionFactoryBean`中,可以将MyBatis引擎的事务管理交给Spring来管理,从而解决上述问题。
相关问题
SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@1cc957a5] was not registered for synchronization because synchronization is not active JDBC Connection [HikariProxyConnection@302955084 wrapping com.mysql.cj.jdbc.ConnectionImpl@1e69f1f2] will not be managed by Spring ==> Preparing: SELECT q.id qid,type,body,label,utime,userid,o.id oid,content,correct,questionid,num FROM question q JOIN questionoption o ON(q.id = o.questionid) WHERE q.id = ? ORDER BY num ==> Parameters: 4(Integer) <== Total: 0
这是 MyBatis 在执行 SQL 语句时打印的日志信息。其中提到了一个 SqlSession 对象和一个 JDBC Connection 对象。SqlSession 是 MyBatis 中用于执行 SQL 语句的会话对象,而 JDBC Connection 则是与数据库建立的连接对象。日志中的信息表示 SqlSession 没有被注册为同步对象,因此 Spring 不会管理它。同时,由于没有开启 Spring 的事务同步机制,JDBC Connection 也不会被 Spring 管理。最后的 Preparing 表示 MyBatis 正在准备执行的 SQL 语句,其中的 ? 表示一个占位符,需要在执行时传入具体的参数。
Creating a new SqlSession SqlSession [org.apache.ibatis.session.defaults.DefaultSqlSession@6793a49c] was not registered for synchronization because synchronization is not active JDBC Connection [HikariProxyConnection@797637478 wrapping com.mysql.cj.jdbc.ConnectionImpl@6f3d6bb2] will not be managed by Spring ==> Preparing: select * from t_project_bim_components where del_flag='N' ==> Parameters:
这是一个错误信息,看起来是使用MyBatis查询数据库时出现的问题。具体原因可能是因为没有正确配置MyBatis的SqlSession和JDBC连接信息,或者是因为Spring事务管理器没有启用同步机制导致的。建议检查配置文件和代码实现,确保正确配置了MyBatis和Spring事务管理器,并且数据库连接信息正确无误。如果问题仍然存在,可以考虑查看更详细的错误日志以便更好地定位问题。
阅读全文