commit和flushCache

来源:2-3 MyBatis二级缓存-2

mixiaofan

2020-08-28 21:07:41

commit和flushCache都是对二级缓存区域的清除

之前说客户端发送的增删改操作都会被记录到事务日志,然后客户端发起commit命令后才会把数据写入数据库

然后flushCache是在执行insert( delete和update是不是也可以? )之后立即清除二级缓存。

那么这样说是不是flushCache在数据操作被记录到事务日志前或者同时的时候清除二级缓存,然后到commit的时候就只会体现提交数据更改操作和清除空的二级缓存?

在代码中的流程是不是在SqlSession对象调用insert(update、delete)方法时执行SQL语句然后将SQL语句所体现的具体的数据操作保存到事务日志,然后到调用commit方法时,把数据操作提交到数据库然后数据库自己对数据进行修改?

rollback的一般也是在调用insert(update、delete)方法时出错才会被调用是吗?

写回答

1回答

好帮手慕阿园

2020-08-29

1,flushCache是在执行 delete和update之后也可以清除二级缓存。

2,是的,flushCache=true的意思是执行完sql后就清除缓存, 不需要等到commit时再清除缓存

3,同学的理解是正确的

4,是的,rollback是回滚的意思,事务在执行的时候,如果执行到某行代码时发生错误,那么之前执行的操作都要被取消

如果我的回答解决了你的疑惑,请采纳!祝学习愉快!


0

0 学习 · 8016 问题

查看课程