Mybatis 程序执行成功,数据库却没有改变
Wed, Dec 1, 2021
One-minute read
出现 mybatis idea 中 updates 返回的数字不为 0, 但数据库没更新
<insert id="insertMoreByList">
insert into t_emp values
<foreach collection="emps" item="emp" separator=",">
(null, #{emp.empName}, #{emp.age}, #{emp.sex}, #{emp.email}, null)
</foreach>
</insert>
在 xml 中配置了 foreach 尝试删除和插入时,idea 中显示了
DEBUG <== Updates: 4 (BaseJdbcLogger.java:143)
显示成功,可是数据库一直没更新。
因为 mybatis 默认不是自动提交事务的, 所以其实没有修改数据库,
刚刚新增完后立即返回的结果,是从 mybatis 为了提高性能设置的缓存里读取的,不是从数据库读取的 解决的办法有如下两种:
1.在 openSession() 的括号里写 true, 设定自动提交事务
2.在代码中加入 sqlSession.commit()