`

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=?

0
1
分享到:
评论

相关推荐

    Hibernate 中文api文档下载.zip_API_Hibernate API _hibernate api

    Hibernate通过不同的方法管理对象的状态,如makeTransient()使对象变为瞬时态,saveOrUpdate()根据对象状态决定是保存还是更新,load()和get()分别用于按ID加载已持久化的对象。 总结,Hibernate中文API文档详尽地...

    hibernate 3.3 core API 英文版

    下面将详细介绍Hibernate 3.3 Core API中的重要知识点。 1. **SessionFactory**:SessionFactory是Hibernate的核心接口,它是线程安全的,负责创建Session实例。SessionFactory由Configuration实例通过读取配置文件...

    Hibernate Core 3.3.2.GA API+Hibernate_3.2.0_符合Java习惯的关系数据库持久化_zh_CN

    **Hibernate Core API**是Hibernate框架的核心组件,提供了与数据库进行交互的主要接口和类。3.3.2.GA版本是该API的一个稳定版本,包含了许多重要的功能和改进。例如: 1. **SessionFactory**:它是Hibernate的核心...

    Hibernate merge、update与saveOrUpdate方法的区别

    ### Hibernate merge、update与saveOrUpdate方法的区别 在Hibernate框架中,`merge`、`update`与`saveOrUpdate`这三个方法都是用于更新或保存实体对象到数据库中的,但它们之间存在着重要的区别,这些区别主要体现...

    Hibernate_api

    **Hibernate_API 深度解析** Hibernate 是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务,使开发者无需编写大量的SQL代码就能进行数据库操作。Hibernate_API 包含了多种格式的文档...

    Hibernate_API_zh-cn高手汇总

    《Hibernate_API_zh-cn高手汇总》是一份专为中国IT专业人士准备的详尽指南,涵盖了Hibernate API的中文详解。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以...

    05_传智播客hibernate教程_实体对象的三种状态与saveOrUpdate方法

    在Java的持久化框架Hibernate中,实体对象的状态管理和`saveOrUpdate`方法是核心概念,对于理解和有效使用Hibernate至关重要。在本教程中,我们将深入探讨实体对象的三种状态以及`saveOrUpdate`方法的工作原理。 ...

    hibernate3.3.1GA_API

    《Hibernate 3.3.1 GA API 中文文档详解》 Hibernate,作为一款强大的对象关系映射(ORM)框架,极大地简化了Java开发者在数据库操作中的工作。3.3.1 GA版本是Hibernate的一个稳定版本,它包含了丰富的功能和改进。...

    save, saveOrUpdate, persist, merge, update 区别.docx

    在Java的持久化框架Hibernate中,管理对象与数据库之间的交互是通过一系列的方法完成的,其中包括`save()`, `saveOrUpdate()`, `persist()`, `merge()`, 和 `update()`。这些方法各有其特点和适用场景,理解它们的...

    hibernate_API

    在这个“hibernate_API”压缩包中,可能包含了Hibernate的核心API文档、示例代码和其他相关资源,帮助我们更好地理解和使用Hibernate。 一、Hibernate概述 Hibernate提供了一种在Java应用中持久化对象的机制,它...

    Hibernate的事务处理机制和flush方法的用法.docx

    在使用Hibernate进行数据库操作时,事务管理和`flush`方法的正确使用至关重要,因为它们直接影响到数据的一致性和安全性。在本文中,我们将深入探讨Hibernate的事务处理机制以及`flush`方法的用法,并分析为何在某些...

    hibernate 的saveOrUpdate

    `saveOrUpdate`是Hibernate提供的一种便捷方法,用于处理对象的保存或更新操作。在深入讲解`saveOrUpdate`之前,我们先理解一下Hibernate的基本概念。 在Hibernate中,实体类(Entity Class)代表数据库中的表,...

    HibernateTemplate.saveOrUpdate时出现\xE7\x84十六进制之类的字符串

    在使用HibernateTemplate的saveOrUpdate方法时,如果遇到类似`\xE7\x84`这样的十六进制字符串,通常这是由于字符编码不匹配导致的汉字乱码问题。这个问题主要涉及到数据库的字符集设置、应用程序的编码配置以及数据...

    Hibernate教程03_Hibernate核心开发接口介绍

    在本教程中,我们将深入探讨Hibernate的核心开发接口,这些接口是Hibernate框架的基石,使得开发者能够轻松地与数据库进行交互...通过阅读给出的源码s2sh_Hibernate03_CoreAPI,可以进一步加深对这些概念的理解和实践。

    Hibernate save() saveorupdate()的用法第1/2页

    ### Hibernate中的`save()`与`saveOrUpdate()`方法详解 #### 一、概述 在Java持久化框架Hibernate中,`save()`与`saveOrUpdate()`是非常重要的两个方法,它们用于处理对象的持久化操作。理解这两个方法的工作原理...

    hibernate get/load/saveOrUpdate/statistics

    博文链接:https://log-cd.iteye.com/blog/205166

    hb_hibernate

    例如,我们可以通过`save()`或`saveOrUpdate()`方法将对象保存到数据库,`update()`用于更新已存在的对象,`delete()`用于删除对象,而`load()`和`get()`则用于根据主键获取对象。 接下来,我们来看压缩包内的文件...

Global site tag (gtag.js) - Google Analytics