Mybatis的useCache参数具体是如何影响查询结果的缓存使用?
- 内容介绍
- 文章标签
- 相关推荐
本文共计327个文字,预计阅读时间需要2分钟。
使用select配置时,发现前后两次的结果是一致的。查阅MyBatis官方文档,发现MyBatis中有flushCache和useCache这两个配置属性,分为以下几种情况:
(1)当为select语句时:flushCache默认为true。
(2)当为update或insert语句时:flushCache默认为true。
(3)当为delete语句时:flushCache默认为true。
(4)当为select查询时,并且设置了useCache为false:flushCache默认为false。
总结:MyBatis中flushCache属性在select语句中默认为true,但在特定情况下也可以设置为false。
使用select配置的时候发现前后两次的结果是一样的?MyBatis官方文档中找到,在MyBatis中有flushCache、useCache这两个配置属性,分为下面几种情况: (1)当为select语句时: ① flushCache默认为false,表示任何时候语句被调用,都不会去清空本地缓存和二级缓存。 ① useCache默认为true,表示会将本条语句的结果进行二级缓存。 (2)当为insert、update、delete语句时: ① flushCache默认为true,表示任何时候语句被调用,都会导致本地缓存和二级缓存被清空。 ① useCache属性在该情况下没有。 当为select语句的时候,如果没有去配置flushCache、useCache,那么默认是启用缓存的,所以,如果有必要,那么就需要人工修改配置,修改结果类似下面: 注意后面的flushCache="true"和useCache="false",做了如上设置以后,发现问题就解决了
本文共计327个文字,预计阅读时间需要2分钟。
使用select配置时,发现前后两次的结果是一致的。查阅MyBatis官方文档,发现MyBatis中有flushCache和useCache这两个配置属性,分为以下几种情况:
(1)当为select语句时:flushCache默认为true。
(2)当为update或insert语句时:flushCache默认为true。
(3)当为delete语句时:flushCache默认为true。
(4)当为select查询时,并且设置了useCache为false:flushCache默认为false。
总结:MyBatis中flushCache属性在select语句中默认为true,但在特定情况下也可以设置为false。
使用select配置的时候发现前后两次的结果是一样的?MyBatis官方文档中找到,在MyBatis中有flushCache、useCache这两个配置属性,分为下面几种情况: (1)当为select语句时: ① flushCache默认为false,表示任何时候语句被调用,都不会去清空本地缓存和二级缓存。 ① useCache默认为true,表示会将本条语句的结果进行二级缓存。 (2)当为insert、update、delete语句时: ① flushCache默认为true,表示任何时候语句被调用,都会导致本地缓存和二级缓存被清空。 ① useCache属性在该情况下没有。 当为select语句的时候,如果没有去配置flushCache、useCache,那么默认是启用缓存的,所以,如果有必要,那么就需要人工修改配置,修改结果类似下面: 注意后面的flushCache="true"和useCache="false",做了如上设置以后,发现问题就解决了

