033_CoreAPI_saveOrUpdate_Clear_Flush

saveOrUpdate()

代码案例:

 

public void TestsaveORUpdate(){

  Teacher t = new Teacher();

t.setName("zhuhw7");

t.setYourWifeName("yourWifeName");

Session session = sf.getCurrentSession();

session.beginTransaction();

session.saveOrUpdate(t);

session.getTransaction().commit();

 

t.setName("zhuhw8");

Session session2 = sf.getCurrentSession();

session2.beginTransaction();

session2.saveOrUpdate(t);

session2.getTransaction().commit();

}

 

 

 

clear()是清除缓存

 

代码案例:

@Test

public void TestClear(){

//从数据库中取出一条数据到缓存中

Session session = sf.getCurrentSession();

session.beginTransaction();

//参数是第一个是转换成哪种类型,第二个参数是实现序列化的-->在这里是id,已经实现的Integer已经实现了序列化

Teacher t = (Teacher)session.load(Teacher.class, 2);

System.out.println(t.getName());

//只执行一次sql,因为第一次执行后,将teache从缓存中取,不需要再次进行执行sql

//clear()是清除缓存,所以这时候会中2此sql

session.clear();

Teacher t2 = (Teacher)session.load(Teacher.class,2);

System.out.println(t.getName());

session.getTransaction().commit();

}

 

 

 

 

 

 

 

 

flush()将缓存中的数据强制与数据库中的数据同步

 

 

@Test

public void TestFlush(){

//从数据库中取出一条数据到缓存中

Session session = sf.getCurrentSession();

session.beginTransaction();

//参数是第一个是转换成哪种类型,第二个参数是实现序列化的-->在这里是id,已经实现的Integer已经实现了序列化

Teacher t = (Teacher)session.load(Teacher.class, 2);

//只在进行提交了,才进行执行update语句

      /*  t.setName("ttt");

        t.setName("ttttt");*/

//flush()强制将缓存中的数据与数据库中的数据作同步,这时会执行两天update语句

t.setName("ttt");

session.flush();

        t.setName("ttttt");

 

session.getTransaction().commit();

}

 

执行结果:

 update

        Teacher 

    set

        birthdate=?,

        _name=?,

        title=?,

        yourWifeName=?,

        zhicheng=? 

    where

        id=?

Hibernate: 

    update

        Teacher 

    set

        birthdate=?,

        _name=?,

        title=?,

        yourWifeName=?,

        zhicheng=? 

    where

        id=?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值