实训问题总结——Mybatis读取不到刚刚修改的数据

文章讲述了程序在添加数据库记录后查询不到新数据的现象,原因是Mybatis的一级缓存导致。解决方法包括局部关闭某个方法的缓存或在SQL中设置flushCache为true。全局关闭缓存不是推荐做法。

现象:程序添加了一条记录,数据库中已经看到添加成功了。但是程序查询语句返回结果中没有新加的记录。直到重启程序后,才能看到之前添加的数据。

原因:mybatis缓存的原因。mybatis框架自带缓存,一级缓存和二级缓存,而一级缓存默认是开启的。什么意思呢?意思就是如果同一个用户执行同一条sql,那么mybatis第二次执行的时候会不读取数据库,从缓存里面获取数据返回。所有没有读取到最新数据。解决办法当然就是关闭一级缓存了。我使用的是局部关闭,就是关闭某几个方法的。而不是全局关闭。如下:

XML文件中增加了flushCache="true"就说明这个sql不用缓存,那么自然就不会读取缓存的数据了。

全局关闭:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

因上精进,果上随缘

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值