load(Class cls , Serializable pk)使用延迟加载来查询记录,不会立即产生sql语句。当实际使用属性的时候才会去查询。如果查询一个不存在的主键,在使用的时候会抛出org.hibernate.ObjectNotFoundException,不使用的话不会抛出这个异常。
get(Class cls , Serializable pk)不使用延迟加载查询记录,立即产生sql语句,查询不存在的主键时,不会产生任何异常,返回值为null
save(Object o)会保存一个对象,并返回该对象的主键。同时为这个对象设置id属性为添加到数据库中的id
persist(Object o)会保存一个对象,没有返回值、但是会为刚刚保存的对象设置主键为保存到数据库中的主键
如果在事务开启的情况下,对bean所做的任何修改都会反映到数据库,例如
Province p = session.load(Province.class,1);
session.beginTransaction();
p.setName("改了值");
session.getTransaction().commit();
则数据库中id为1的省份的最终的名称为改了值
但是如果没有开启事务的话,则对bean的修改不会反映到数据库。
一旦调用了session.flush或者是session.getTransaction().commit(),都会反映到数据库,前提是必须开启了事务。否则不会反映到数据库。
merge(Object obj)方法,会将一个实例化对象保存到数据库,并且返回为此对象赋值id后的对象。但是这个方法不会将对象的状态转换为持久化状态,对象的状态依然是瞬时状态 ,返回的对象会是持久化对象,所以,如果还想让该对象和数据库保持持久化状态的话,应将持久化对象覆盖源对象。
update(Object obj) 更新一个对象,如果这个对象不是持久化对象,也就是还没有保存到数据库,则更新此对象,会抛出org.hibernate.StaleStateException: Batch update returned unexpected row count from update [0]; actual row count: 0; expected: 1 , 意思就是该对象还没有保存。
更新的时候注意一点就是不能改变主键
否则会报告异常
org.hibernate.HibernateException: identifier of an instance of com.bean.Province was altered from 1 to 2
saveOrUpdate(Object obj)命令是保存或更新对象,具体调用保存还是更新看的是根据主键是否为空,如果为空,则调用的是save如果是非空,则调用的是update.同样update时候不能改变主键。
分享到:
相关推荐
Hibernate基本数据操作方法 java struts hibernate
这个"hibernate基本jar包"包含了运行Hibernate项目所需的库文件。 在Java开发环境中,JAR(Java Archive)文件是一种归档格式,用于收集多个类文件和其他资源,以便在Java虚拟机中作为一个单一的模块来分发。...
【hibernate基本配置及使用方法】 Hibernate是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与关系数据库之间的交互。本教程将详细解释Hibernate的基本配置和使用步骤,帮助初学者快速掌握这一强大...
在“hibernate基本jar包(数据库是Oracle)”中,我们可以推断出这是针对使用Oracle数据库的Hibernate项目所需的基础库集合。这个压缩包很可能是包含了一系列用于搭建Hibernate环境并连接Oracle数据库的JAR文件。以下...
总之,这个压缩包提供了进行Hibernate开发的基本环境,包括了核心库、ORM支持和测试工具,开发者可以基于这些资源快速搭建并测试一个Hibernate项目。在实际开发中,还需要了解和掌握更多关于Hibernate的高级特性和...
`HibernateDemo(hibernate基本用法演示)` 是一个针对 Hibernate 框架的基础操作示例项目。Hibernate 是一款强大的 Java ORM(对象关系映射)框架,它允许开发者在 Java 应用程序中以面向对象的方式处理数据库交互,...
**hibernate框架基本包** Hibernate 是一个开源的Java库,它为开发人员提供了一种在Java应用程序中持久化对象的框架。这个“hibernate框架基本包”包含了一系列必要的库文件,使得开发者能够轻松地将数据库操作与...
本文将深入探讨 Hibernate 4 的基本配置方式,以便开发者能够更好地理解和实施相关配置。 首先,我们有传统的XML配置方式,通常通过`hibernate.cfg.xml`文件进行。这个文件包含了Hibernate所需的数据库连接信息、...
本篇将深入探讨Hibernate方法的实现,包括其基本概念、配置、实体类、会话工厂以及各种操作数据库的方法。 1. **Hibernate基础** Hibernate是基于Java的持久层框架,通过XML配置文件或注解来定义对象与数据库表...
**Eclipse Hibernate基本配置及简单实现** 在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者可以专注于业务逻辑而不是数据库层面的细节。本篇将介绍如何在Eclipse环境中配置和...
**Hibernate基本增删改CRUD操作** 在Java开发中,Hibernate是一个非常流行的持久化框架,它简化了数据库操作,使得开发者无需直接编写SQL语句,就能实现对象与关系数据库之间的映射。本教程将深入讲解如何使用...
下面我们将深入探讨Spring与Hibernate整合的底层数据操作方法。 一、Spring与Hibernate整合基础 1. 依赖管理:整合Spring和Hibernate首先需要在项目中引入相应的依赖,通常包括Spring的核心库、Spring的数据访问/...
**Hibernate基本实现** Hibernate是一个流行的Java对象关系映射(ORM)框架,它简化了数据库操作,使得开发者可以使用面向对象的方式来处理数据。本教程将详细解释Hibernate的基础实现步骤,包括环境配置、实体类...
以下是对"jsp+Struts+hibernate基本框架搭建demo"的详细阐述: **1. JSP(JavaServer Pages)** JSP是Java平台上的动态网页技术,它允许开发者在HTML页面中嵌入Java代码,从而实现动态内容的生成。在Struts框架中,...
### Hibernate基本知识点详解 #### Hibernate简介 Hibernate是一个开源的对象关系映射(ORM)框架,它为Java应用程序提供了简化的方式去处理数据库操作。通过提供一种面向对象的方法来与关系型数据库进行交互,...
查询可以通过 Criteria API 或 HQL(Hibernate Query Language)进行。以下是一个简单的 Criteria 查询示例: //取得 SessionFactory 实例SessionFactory sessionFactory = HibernateUtil.getSessionFactory(); //...
### Hibernate基本功能详解 #### 一、概述 Hibernate是一个开源的对象关系映射(ORM)框架,它能够将Java对象映射到数据库表中,并管理这些对象的生命周期。本篇文章主要介绍利用Hibernate框架来实现基本的功能...
本示例结合了这两者,通过具体的代码实例来讲解它们的基本原理和使用方法。 一、Hibernate简介 Hibernate是Java平台上的一个持久层框架,它提供了一种在Java应用中管理关系数据库的便捷方式。主要功能包括:对象-...
Hibernate是一个开源的对象关系映射(ORM)框架,它封装了JDBC(Java Database ...该讲义涵盖了Hibernate的基本技术、配置方法以及如何开发一个Hibernate程序等重要知识点,为学习者提供了一个实践ORM框架的良好起点。