显示表中有两行数据,该表也设置了主键和唯一索引
点进表里看却没有数据
问题原因出现在这里,虽然很多常用的数据库连接池都会开启自动提交,但ibatis的SqlSession使用sessionFactory.openSession()创建时,默认的自动提交是false,点开源码就会发现:
所以我们将代码改成SqlSession session = sessionFactory.openSession(true),让其在插入数据或者回滚删除数据时自动提交。
那么问题产生的原因也找到了,是连接池创建的连接里,执行插入数据的sql语句没有提交,导致线程结束后直接将连接释放了,所以sleep期间在可视化工具上也看不到插入的数据。改为自动提交后就能看到了。
THX