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=?
相关推荐
Hibernate通过不同的方法管理对象的状态,如makeTransient()使对象变为瞬时态,saveOrUpdate()根据对象状态决定是保存还是更新,load()和get()分别用于按ID加载已持久化的对象。 总结,Hibernate中文API文档详尽地...
下面将详细介绍Hibernate 3.3 Core API中的重要知识点。 1. **SessionFactory**:SessionFactory是Hibernate的核心接口,它是线程安全的,负责创建Session实例。SessionFactory由Configuration实例通过读取配置文件...
**Hibernate Core API**是Hibernate框架的核心组件,提供了与数据库进行交互的主要接口和类。3.3.2.GA版本是该API的一个稳定版本,包含了许多重要的功能和改进。例如: 1. **SessionFactory**:它是Hibernate的核心...
### Hibernate merge、update与saveOrUpdate方法的区别 在Hibernate框架中,`merge`、`update`与`saveOrUpdate`这三个方法都是用于更新或保存实体对象到数据库中的,但它们之间存在着重要的区别,这些区别主要体现...
**Hibernate_API 深度解析** Hibernate 是一个开源的对象关系映射(ORM)框架,它为Java开发者提供了方便的数据持久化服务,使开发者无需编写大量的SQL代码就能进行数据库操作。Hibernate_API 包含了多种格式的文档...
《Hibernate_API_zh-cn高手汇总》是一份专为中国IT专业人士准备的详尽指南,涵盖了Hibernate API的中文详解。Hibernate作为Java领域中广泛使用的对象关系映射(ORM)框架,极大地简化了数据库操作,使得开发者可以...
在Java的持久化框架Hibernate中,实体对象的状态管理和`saveOrUpdate`方法是核心概念,对于理解和有效使用Hibernate至关重要。在本教程中,我们将深入探讨实体对象的三种状态以及`saveOrUpdate`方法的工作原理。 ...
《Hibernate 3.3.1 GA API 中文文档详解》 Hibernate,作为一款强大的对象关系映射(ORM)框架,极大地简化了Java开发者在数据库操作中的工作。3.3.1 GA版本是Hibernate的一个稳定版本,它包含了丰富的功能和改进。...
在Java的持久化框架Hibernate中,管理对象与数据库之间的交互是通过一系列的方法完成的,其中包括`save()`, `saveOrUpdate()`, `persist()`, `merge()`, 和 `update()`。这些方法各有其特点和适用场景,理解它们的...
在这个“hibernate_API”压缩包中,可能包含了Hibernate的核心API文档、示例代码和其他相关资源,帮助我们更好地理解和使用Hibernate。 一、Hibernate概述 Hibernate提供了一种在Java应用中持久化对象的机制,它...
在使用Hibernate进行数据库操作时,事务管理和`flush`方法的正确使用至关重要,因为它们直接影响到数据的一致性和安全性。在本文中,我们将深入探讨Hibernate的事务处理机制以及`flush`方法的用法,并分析为何在某些...
`saveOrUpdate`是Hibernate提供的一种便捷方法,用于处理对象的保存或更新操作。在深入讲解`saveOrUpdate`之前,我们先理解一下Hibernate的基本概念。 在Hibernate中,实体类(Entity Class)代表数据库中的表,...
在使用HibernateTemplate的saveOrUpdate方法时,如果遇到类似`\xE7\x84`这样的十六进制字符串,通常这是由于字符编码不匹配导致的汉字乱码问题。这个问题主要涉及到数据库的字符集设置、应用程序的编码配置以及数据...
在本教程中,我们将深入探讨Hibernate的核心开发接口,这些接口是Hibernate框架的基石,使得开发者能够轻松地与数据库进行交互...通过阅读给出的源码s2sh_Hibernate03_CoreAPI,可以进一步加深对这些概念的理解和实践。
### Hibernate中的`save()`与`saveOrUpdate()`方法详解 #### 一、概述 在Java持久化框架Hibernate中,`save()`与`saveOrUpdate()`是非常重要的两个方法,它们用于处理对象的持久化操作。理解这两个方法的工作原理...
博文链接:https://log-cd.iteye.com/blog/205166
例如,我们可以通过`save()`或`saveOrUpdate()`方法将对象保存到数据库,`update()`用于更新已存在的对象,`delete()`用于删除对象,而`load()`和`get()`则用于根据主键获取对象。 接下来,我们来看压缩包内的文件...