Mybatis中关于commit的问题
老师您好,如下是测试类,其他配置都和视频中的源代码一样,并且在在goods.update的标签中我已经设置flushCache=false.我就是想看看更新操作完以后使用commit能否清除二级缓存。但是我发现与理想不符合,结果图中的缓存命中率居然是0.5,不应该啊,更新完的commit不应该清空二级缓存区了吗,为什么还会出现0.5的缓存命中率(也就是说并没有清空二级缓存区)
恳求老师可以把下端代码复制过去进行测试,万分感谢!
@Test public void testLv1Cache() throws Exception { SqlSession session1 = null; try{ session1 = MyBatisUtils.openSession(); Goods goods = session1.selectOne("goods.selectById" , 1603); goods.setTitle("更新测试商品82"); int num = session1.update("goods.update" , goods); session1.commit(); Goods goods1 = session1.selectOne("goods.selectById" , 1603); System.out.println(goods1.getTitle()); System.out.println("------------------------------------------------"); }catch (Exception e){ throw e; }finally { MyBatisUtils.closeSession(session1); } }
结果图
19
收起
正在回答
1回答
同学你好,同学配置时的flushCache="false",表示执行完该sql语句之后,不会清除或刷新缓存。所以即使commit也不会清除缓存的。
同学可以将flushCache设置为"true"再尝试一下。
祝学习愉快~
恭喜解决一个难题,获得1积分~
来为老师/同学的回答评分吧
0 星