Loading [MathJax]/jax/output/CommonHTML/config.js
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >Mybatis缓存配置

Mybatis缓存配置

作者头像
試毅-思伟
发布于 2018-09-06 02:54:09
发布于 2018-09-06 02:54:09
80300
代码可运行
举报
文章被收录于专栏:Java开发Java开发
运行总次数:0
代码可运行

pom文件配置:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis</artifactId>
    <version>3.4.1</version>
</dependency>
<dependency>
    <groupId>org.mybatis</groupId>
    <artifactId>mybatis-spring</artifactId>
    <version>1.3.0</version>
</dependency>
<dependency>
    <groupId>org.mybatis.caches</groupId>
    <artifactId>mybatis-ehcache</artifactId>
    <version>1.1.0</version>
</dependency>
<dependency>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-core</artifactId>
    <version>2.5.3</version>
</dependency>

spring加载ehcache配置文件

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- 缓存管理器 -->
<bean id="cacheManager" class="org.apache.shiro.cache.ehcache.EhCacheManager">
    <property name="cacheManagerConfigFile" value="classpath:ehcache.xml" />
</bean>

ehcache.xml:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<ehcache xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
    xsi:noNamespaceSchemaLocation="http://ehcache.xsd">

    <!--diskStore:缓存数据持久化的目录 地址 -->
    <diskStore path="java.io.tmpdir" />

    <defaultCache maxElementsInMemory="1000"
        maxElementsOnDisk="10000000" eternal="false" overflowToDisk="false"
        diskPersistent="false" timeToIdleSeconds="120" timeToLiveSeconds="120"
        diskExpiryThreadIntervalSeconds="120" memoryStoreEvictionPolicy="LRU">
    </defaultCache>

</ehcache>

mybatis.xml开启缓存:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<settings>
    <!-- 开启缓存 -->
    <setting name="cacheEnabled" value="true" />
    <!-- 支持驼峰 -->
    <setting name="mapUnderscoreToCamelCase" value="true" />
    <!-- lazyLoadingEnabled:延迟加载启动,默认是false -->
    <setting name="lazyLoadingEnabled" value="false" />
    <!-- aggressiveLazyLoading:积极的懒加载,false的话按需加载,默认是true -->
    <setting name="aggressiveLazyLoading" value="true" />
</settings>

然后在对应的mapper.xml里面加上

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
<!-- 开启二级缓存 -->
<cache type="org.mybatis.caches.ehcache.EhcacheCache">
    <property name="timeToIdleSeconds" value="3600" /><!--1 hour -->
    <property name="timeToLiveSeconds" value="3600" /><!--1 hour -->
    <property name="maxEntriesLocalHeap" value="1000" />
    <property name="maxEntriesLocalDisk" value="10000000" />
    <property name="memoryStoreEvictionPolicy" value="LRU" />
</cache>

(1)property参数配置不加也可以,都会有一个默认值,大家也可以查查一共有哪些配置,然后根据自己的需要来配置,然后这个配置是会带上cache执行的日志,如果不要带日志可以把LogginEhcache改成EhcacheCache。 (2)如果readOnly为false,此时要结果集对象必须是可序列化的。需要将实体对象implements Serializable

上面这个是全局设置,在每条单独的sql语句上,还可以有局部设置,比如: <select id="getOrder" parameterType="int" resultType="TOrder" useCache="false"> ... </select> useCache="false"表示该select语句不使用缓存(即使xml最开头的全局cache启用) 默认情况下,如果全局开启了缓存,insert/update/delete成功后,会自动刷新相关的缓存项,但有一点要特别注意:在mybatis与hibernate混用时,由于mybatis与hibernate的缓存是无关的,如果用mybatis做select查询,用hibernate做insert/update/delete,hibernate对数据的修改,并不会刷新mybatis的缓存。

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2017.12.20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
​爬虫入门篇(上手即用)
可以通过chrome浏览器的F12-network查看request的headers,将该网页的headers信息复制下来使用。
星辉
2019/03/20
5680
[代码与实例] 爬虫 爬ooxx图 嘿嘿
在这里还是要推荐下我自己建的 Python学习群:721195303,群里都是学Python的,如果你想学或者正在学习Python ,欢迎你加入,大家都是软件开发党,不定期分享干货(只有Python软件开发相关的),包括我自己整理的一份2021最新的Python进阶资料和零基础教学,欢迎进阶中和对Python感兴趣的小伙伴加入! **以下内容无用,为本篇博客被搜索引擎抓取使用 (* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄) python 是干什么的 零基础学 python 要多久 python 为什么叫爬虫 python 爬虫菜鸟教程 python 爬虫万能代码 python 爬虫怎么挣钱 python 基础教程 网络爬虫 python python 爬虫经典例子 python 爬虫 (* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)(* ̄︶ ̄)( ̄︶ ̄)( ̄︶ ̄) 以上内容无用,为本篇博客被搜索引擎抓取使用
全栈程序员站长
2022/11/04
3500
python爬虫 完整代码
直接复制粘贴就行。 若要更改爬取网站,则需要更改URL以及相应的html格式(代码中的“item”)
全栈程序员站长
2022/09/06
6350
不骗你,步步案例,教你一文搞定python爬虫
很久以前写了一篇爬虫的文章,把它放在CSDN上(livan1234)没想到点击量竟然暴涨,足以看到大家在数据获取方面的需求,爬虫技术现在已经非常普遍,其用途也非常广泛,很多牛人在各个领域做过相关的尝试,比如:
数据森麟
2019/09/27
5850
不骗你,步步案例,教你一文搞定python爬虫
Python3网络爬虫(三):urllib.error异常
本文介绍了Python3网络爬虫中的urllib.error异常,包括URLError和HTTPError,以及它们的区别和解决方法。另外,还介绍了如何使用urllib.error异常来捕获和处理HTTP错误。
Jack_Cui
2018/01/08
1.2K0
Python3网络爬虫(三):urllib.error异常
硬件发展趋势调研——数据抓取及存储
缘起:近来想要调研硬件领域过去几年的发展趋势,那些领域取得了较大的进步,哪些领域处于半停滞状态(发展缓慢)?Hackaday作为硬件领域最大的开源平台和社区,致力于发布世界各个角落的精彩Hack项目。因此,我们从Hackaday官网中获取开源项目,通过记录阅读量、点赞数以及学习人数等多个方面的数据,后续结合智能算法实现发展趋势的预测。
联远智维
2022/10/18
9080
硬件发展趋势调研——数据抓取及存储
python简单爬虫笔记
python模拟游览器爬取相关页面 import urllib.request url="https://blog.51cto.com/itstyle/2146899" #模拟浏览器 headers=("User-Agent","Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/55.0.2883.87 Safari/537.36") opener=urllib.request.build_
py3study
2020/01/15
4190
Python3网络爬虫(三):urllib.error异常
原作者及原文链接: https://blog.csdn.net/c406495762/article/details/59488464
圆方圆PYTHON学院
2019/01/15
9000
Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
网络爬虫(又被称为网页蜘蛛,网络机器人)就是模拟浏览器发送网络请求,接收请求响应,一种按照一定的规则,自动地抓取互联网信息的程序。 原则上,只要是浏览器(客户端)能做的事情,爬虫都能够做。
Python小二
2020/09/08
8180
Python 爬虫超详细讲解(零基础入门,老年人都看的懂)
Python自带爬虫库urllib使用大全
这篇文章主要来讲解下Python自带的爬虫库urllib常见用法,主要围绕urllib定义、urllib的常用模块和urllib+lxml爬虫案例三个部分进行展开。
Python进阶者
2020/12/17
8440
初识 Python 网络请求库 urllib
urllib 是 Python 自带的网络请求标准库,包含了多个处理 URL 功能的模块。
keinYe
2019/08/01
1K0
Python——网络爬虫
此篇文章继续跟着小甲鱼的视频来初学网络爬虫,除了小甲鱼的网站上可下载视频,发现b站上也有全套的视频哦,会比下载来的更方便些。 网络爬虫,又称为网页蜘蛛(WebSpider),非常形象的一个名字。如果你
闪电gogogo
2018/01/08
1.6K0
Python——网络爬虫
Python爬虫之urllib库—爬虫的第一步
第一个爬虫代码的实现我想应该是从urllib开始吧,博主开始学习的时候就是使用urllib库敲了几行代码就实现了简单的爬数据功能,我想大多伙伴们也都是这么过来的。当时的感觉就是:哇,好厉害,短短几行竟然就可以搞定一个看似很复杂的任务,于是就在想这短短的几行代码到底是怎么实现的呢,如何进行更高级复杂的爬取呢?带着这个问题我也就开始了urllib库的学习。
Python数据科学
2018/08/06
6830
Python爬虫之urllib库—爬虫的第一步
Python网页爬取_在pycharm里面如何爬取网页
使用Python爬取简单数据 闲暇时间学习Python,不管以后能否使用,就算了解计算机语言知识。 因为有一点Java基础,所以Python的基本语法就很快的过了一遍,表达或许有点混乱,以后慢慢改进。 一、导入爬取网页所需的包。
全栈程序员站长
2022/11/04
2.1K0
Python网页爬取_在pycharm里面如何爬取网页
python爬虫从入门到放弃(三)之 Urllib库的基本使用
 官方文档地址:https://docs.python.org/3/library/urllib.html 什么是Urllib Urllib是python内置的HTTP请求库 包括以下模块 urlli
coders
2018/01/04
1.7K0
python爬虫从入门到放弃(三)之 Urllib库的基本使用
Python网络爬虫(实践篇)
读取内容常见的3种方式,其用法是: file.read()读取文件的全部内容,并把读取到的内容赋给一个字符串变量 file.readlines()读取文件的全部内容,并把读取到的内容赋给一个列表变量 file.readline()读取文件的一行内容
Python研究者
2020/09/28
7890
Python爬虫之urllib库—进阶篇
urllib库除了一些基础的用法外,还有很多高级的功能,可以更加灵活的适用在爬虫应用中,比如,用HTTP的POST请求方法向服务器提交数据实现用户登录、当服务器检测出频繁使用同一IP而发出禁令时,如何使用代理IP来应对,如何设置超时,以及解析URL方法上的一些处理,本次将会对这些内容进行详细的分析和讲解。
Python数据科学
2018/08/06
5610
Python爬虫之urllib库—进阶篇
Python3网络爬虫实战-21、使用U
在前面一节我们了解了 Request 的发送过程,但是在网络情况不好的情况下,出现了异常怎么办呢?这时如果我们不处理这些异常,程序很可能报错而终止运行,所以异常处理还是十分有必要的。
py3study
2020/01/06
5350
Python爬虫,批量下载小说网站上的小说
Python现在非常火,语法简单而且功能强大,很多同学都想学Python!所以小的给各位看官们准备了高价值Python学习视频教程及相关电子版书籍,欢迎前来领取!
python学习教程
2019/07/23
3.4K0
Python中操作HTTP请求的urllib模块详解
urllib 是 Python 标准库中用于网络请求的库。该库有四个模块,分别是urllib.request,urllib.error,urllib.parse,urllib.robotparser。
步履不停凡
2019/09/11
2.8K0
相关推荐
​爬虫入门篇(上手即用)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验