hibernate_day02——一级缓存

四、hibernate的一级缓存

  • 什么是缓存:数据存到数据库里面,数据库本身是文件系统,使用流方式操作文件效率不是很高。

(1)把数据存放到内存里面,不需要使用流方式,可以直接读取内存中数据;

(2)把数据放到内存中,提高读取效率。

  • hibernate缓存

(1)hibernate框架中提供很多优化方式,hibernate的缓存就是一个优化方式

(2)hibernate缓存特点:

第一类:hibernate的一级缓存

——hibernate的一级缓存是默认打开的

——hibernate的一级缓存使用范围,是session的范围。从session创建到session关闭的范围

——hibernate的一级缓存中,存储数据必须 持久态数据。

第二类:hibernate的二级缓存(目前已经不使用,Redis替代)

——二级缓存默认不是打开的,需要配置;

——使用范围:整个项目(SessionFactory的范围)

  • 验证一级缓存存在

验证方式:

(1)首先根据uid=1查询,返回对象;

(2)其次再根据uid=1查询,又返回对象;

// 验证一级缓存
	@Test
	public void testCasch() {
		// 1.调用工具类得到SessionFactory
		SessionFactory sessionFactory = HibernateUtils.getSessionFactory();
		// 2.获取session
		Session session = sessionFactory.openSession();
		// 3.开启事务
		Transaction tx = session.beginTransaction();

		// 1.根据uid=4查询(看执行第一个get方法是否查询数据库,是否发送SQL语句)
		User user1 = session.get(User.class, 4);
		System.out.println(user1);
		// 2.根据uid=4查询(看执行第一个get方法是否查询数据库,是否发送SQL语句)
		User user2 = session.get(User.class, 4);
		System.out.println(user2);
		
		
		// 5.提交事务
		tx.commit();
		// 6.关闭
		session.close();
		sessionFactory.close();
	}

执行第一个get方法之后,发送SQL语句;执行第二个get方法,没有发送SQL语句。

hibernate一级缓存执行过程

  • hibernate一级缓存特性

(1)持久态自动更新数据库

 

(2)持久态自动更新数据库执行过程(了解)


 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值