mysql ehcache_MyBatis使用Ehcache作为二级缓存

本文介绍了如何在SpringBoot+MyBatis项目中使用Ehcache作为二级缓存,包括导入依赖、开启全局配置、配置ehcache.xml及在Mapper中启用缓存。特别提醒,由于二级缓存可能导致数据一致性问题,MyBatis默认关闭二级缓存,使用时需谨慎。
摘要由CSDN通过智能技术生成

特别说明:由于二级缓存是基于Mapper的,当你在不同的mapper中查询了相同的数据,例如不同的Mapper中有多表查询时结果中有相同的数据,当其中一个Mapper进行插入更新缓存时,另一个并没有插入更新,那么使用两个mapper查询出来的数据会出现数据不一致的情况,所以MyBatis默认的二级缓存的实现方式需要慎用,也因此MyBatis的二级缓存都默认关闭。

主要步骤(基于springboot+mybatis)

1 导入依赖

org.mybatis.spring.boot

mybatis-spring-boot-starter

1.3.2

mysql

mysql-connector-java

5.1.8

org.mybatis.caches

mybatis-ehcache

1.1.0

2 开启全局缓存

d8d036b4f0ae

开启全局配置

3 配置ehcache.xml

注意:ehcache.xml必须放在classpath路径下,并且名字必须是ehcache.xml(因为CacheManager默认就是加载classpath路径下的ehcache.xml文件,当然也可以自己设置,这就需要自己继承EhcacheCache自己写逻辑)

maxElementsInMemory="10000"

maxElementsOnDisk="

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: mybatis的xml最上面的配置应该是这样的: ``` <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> ``` 第一行是声明xml文件的版本和编码方式,第二行是声明文件类型,这是mybatis的mapper映射文件的固定格式。 在这个标签之后,你就可以开始写你的mybatis映射语句了。 例如: ``` <mapper namespace="org.mybatis.example.BlogMapper"> <select id="selectBlog" resultType="Blog"> select * from Blog where id = #{id} </select> </mapper> ``` 这段代码定义了一个名为"selectBlog"的查询语句,它的返回类型是"Blog"。它执行的SQL语句是"select * from Blog where id = #{id}"。 ### 回答2: MyBatis的xml最上面配置一般包括命名空间、DTD或XSD的声明,以及一些常用的配置。 命名空间是指定xml文件与Java接口或映射文件的关联关系,可以通过namespace属性进行指定,例如: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper"> <!-- 接下来是具体的映射配置 --> </mapper> ``` DTD或XSD的声明用于指定xml文件所遵循的文档类型定义,这样可以验证xml文件的正确性。MyBatis使用DTD来定义映射文件的结构和元素,示例如上述代码中的`<!DOCTYPE mapper ...>`。 除了命名空间和DTD声明,还可以在最上面的配置中进行一些常用的设置,例如指定是否开启或关闭缓存、指定数据库厂商的方言等。示例如下: ```xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.example.mapper.UserMapper" xmlns:cache="org.mybatis.caches.ehcache.EhcacheCache" xmlns:dataSource="org.apache.ibatis.datasource.pooled.PooledDataSource" xmlns:dataSourceProvider="org.apache.ibatis.datasource.unpooled.UnpooledDataSourceProvider"> <!-- 配置缓存,开启或关闭缓存,设置缓存策略等 --> <cache eviction="FIFO" flushInterval="10000" readOnly="true" size="1024"/> <!-- 配置数据库连接池 --> <dataSource type="PooledDataSource"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="123456"/> </dataSource> <!-- 配置数据库方言 --> <dataSourceProvider type="UnpooledDataSourceProvider"> <property name="databaseDialects" value="mysql"/> </dataSourceProvider> <!-- 接下来是具体的映射配置 --> </mapper> ``` 在实际开发中,上面提到的配置可能会根据项目的具体需求进行调整和扩展。 ### 回答3: 在MyBatis的XML文件中,最上面的配置一般包括以下内容: 1. xml文件头:使用<?xml version="1.0" encoding="UTF-8"?>声明文件的版本和编码类型。 2. Mybatis命名空间配置:使用<configuration>标签包裹整个配置文件,并在该标签内配置命名空间。 ```xml <configuration xmlns="http://mybatis.org/dtd/mybatis-3-config"> ``` 3. 引入DTD约束:在<configuration>标签内使用<!DOCTYPE>声明约束文件的DTD地址。 ```xml <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> ``` 4. 扫描MyBatis映射文件的路径:使用<mappers>标签配置映射文件的位置。 ```xml <mappers> <!-- 指定映射文件位置 --> <mapper resource="mapper/ExampleMapper.xml"/> </mappers> ``` 以上是MyBatis的XML配置文件的最上面常见的配置方法,通过这些配置可以实现MyBatis框架的基本配置。当然,根据具体项目需求,还可以在这里配置其他一些全局配置、插件、类型别名等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值