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()