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是回滚的意思,事务在执行的时候,如果执行到某行代码时发生错误,那么之前执行的操作都要被取消
如果我的回答解决了你的疑惑,请采纳!祝学习愉快!
相似问题