Hibernate的快照

Hibernate的快照

作用:提高效率手段2:减少不必要的修改语句发送

当实体对象变成持久态对象的时候,和数据库表关联后。在session中会保存两份数据的副本。
一份是缓存,一个是快照。

  • 缓存的作用:用于提高查询的效率
  • 快照的作用:用于更新数据,作对比使用。

快照的支持就是持久态对象直接可以通过直接修改属性值更数据库表的数据,不需要update方法。

image

image

public class CustomerDAOTest {

    @Test
    public void update(){
        //1.获得数据库操作对象,session
        Session session = HibernateUtils.getSession();
        //2. Hibernate框架,操作(增删改)必须先开启事务才能操作
        Transaction transaction = session.beginTransaction();
        //3.创建一个实体类,并且封装数据
        Customer c=session.get(Customer.class, 1L);
        //持久态对象修改了属性,直接提交就可以更新到数据库里面
        c.setCustName("网易");

        //5.提交事务,如果出错自动回滚
        transaction.commit();
        //6.关闭
        session.close();
    }


}

注意:
1. hibernate从数据库查询数据后会返回ResultSet
2. 然后hibernate会将resultSet中的内容组装成对象(两个)
3. 组装后的两个对象会一个放入缓存中,一个会放入快照中
4. 然后把缓存对象返回给程序
5. 如果程序修改了缓存对象,然后事务提交到hibernate
6. 然后hibernate会对比缓存对象和快照对象,如果有变化就会同步到数据库,如果没有就算了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值