第二次使用mybaits,还是被同一个问题钻了几个小时的空子,请一定要和大家分享这个问题。 很多网友都在说一大堆由mybatis.xml组成的配置。 但是我没有用mybatis.xml。 我的所有配置都是按**mapper.xml配置的,只是与实体类相关联的路径和别名。
在mybatis框架中,如果在未关闭SqlSession之前在一个session中执行相同的select语句,mybatis将不会重新查询数据库,而是直接返回高速缓存在内存中的查询结果。 这与mybatis的Cache配置无关,更改配置文件也不起作用。 要调用SqlSession
就我个人而言,我理解clearCache清理是所谓的l1缓存,它在执行insert、update和delete方法后会积极地执行清理。 这个缓存是mybatis自己维护的。 因此,不需要手工处理。
你应该用了二级缓存引起了你描述的问题。 这意味着您在**mapper.xml中使用的标签。 默认情况下,使用此选项卡打开mybatis的l2缓存。 因此,即使在查询过程中清理了session.clearCache (使用l1缓存),l2缓存中仍然存在。
所以,只要去掉**mapper.xml的标签就可以了。
译文: 33581008610086.blog.51cto.com/4995677/1431219