jpa实现mysql缓存_Spring Boot Jpa 缓存

spring boot  jpa 底层实现为hibernate,hibernate的缓存机制分为

1 . 一级缓存(session缓存)

2.  二级缓存(id查询缓存)

3.   查询缓存

导入hibernate相关依赖 ,其中 ehcache为实现二级缓存和查询缓存需要的缓存框架。

4669d7f4eeed326c91c0f02284c736b4.png

项目结构图如下:

cbf6aed8394e898864c2813e7c8e0f44.png

hibernate的主配置文件如下:

1 <?xml version='1.0' encoding='utf-8'?>

2 "-//Hibernate/Hibernate Configuration DTD//EN"

4 "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

5

6

7

8

9

10 com.mysql.jdbc.Driver

11 jdbc:mysql://127.0.0.1:3306/shop-db

12 root

13 123456

14

15

16 org.hibernate.dialect.MySQL5Dialect

17

18

19

20

21 true

22

23 true

24

25 update

26

27

28 20

29

30 utf-8

31

32

33

34 true

35

36 org.hibernate.cache.ehcache.EhCacheRegionFactory

37

38

39 true

40

41

42

43

44

45

46

47

48

49

50

51

52

主配置文件中需要注意的事项:

1  mapping 标签必须位于 property 标签之后

实体的映射文件:

/p>

"http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd">

缓存矿建的配置文件:ehcache.xml

验证一级缓存:(当session不销毁时,执行相同的查询操作)

29027edb6a60f54d23bdccad554a652f.png

验证结果:发现执行了一次查询动作

3eb91f528cd99fee786552d4fd40519e.png

验证二级缓存

1、在主配置文件中,开启二级缓存,同时指定实现的缓存框架

true

org.hibernate.cache.ehcache.EhCacheRegionFactory

2、增加缓存框架的配置文件:ehcache.xml

针对具体需要进行二级缓存的实体,配置缓存策略 ( usage="read-write" )

实现方式:

1. 在主配置文件中指定需要二级缓存的实体,缓存的策略 以及具体的缓存方式

69f496b6804fd5fb8dde3f088769c676.gif

class="entity.A" : 需要缓存的实体

usage="read-write":缓存读和更新

region="sample": 缓存框架中对用的缓存方式

db192edf99d78ae5822a16030f5ebf4a.png

2.在实体的映射文件中进行配置

2dd9e592426891294405aa6e4014ad74.png

验证二级缓存:(在二级缓存开启的情况下,以不同的session去执行同一次查询,验证结果)

6f4b1a13893ed89695ce35a62686590b.png

d121c0f2ac5e9bbac83b513936e508c4.png

验证查询缓存,此处记录和二级缓存同时使用的情况

1.在主配置文件中开启查询缓存

true

2.在代码中设置开启缓存

000a100ab533d79874439b78a8941cdf.png

验证结果:

42462058b4d6d945a3cce3720be23c0c.png

JPA开启二级缓存

由于jpa的底层实现是hibernate,所以开启方式类似,具体源码

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值