Hibernate 操作对象

Hibernate 中的对象状态 :

临时状态(transient):刚用new 语句创建,还没有被持久化,并且不处于Sesssion 的缓存中。处于临时状态的Java 对象被称为临时对象。

持久化状态(persistent):已经被持久化,并且加入到Session 的缓存中。处于持久化状态的Java 对象被称为持久化对象。

删除状态(removed):不再处于Session 的缓存中,并且Session 已经计划将其从数据库中删除。处于删除状态的Java 对象被称为删除对象。

游离状态(detached):已经被持久化,但不再处于Session 的缓存中。处于游离状态的Java 对象被称为游离对象。

Session 常用方法:

1,save()方法将一个临时对象转变成持久化对象;

2,load()方法与get()方法

都是根据OID 从数据库中加载一个持久化对象。

区别1:假如数据库中不存在与OID 对应的记录,Load()方法会抛出异常,而get()方法返回null;

区别2:load 方法默认采用延迟加载策略,get 方法采用立即检索策略;

*什么是延迟加载:

Class c=(Class)session.load(Class.class, Long.valueOf(1));
System.out.println(c.getStudents());

这里使用load方法获得的c只是一个引用,c里的属性值都是空的,到真正需要用到它的属性时才会加载,这里在执行

System.out.println(c.getStudents());时才会加载属性值;

而如果是使用Get方法的话,在得c对象时,它的属性值已经检索出来了。

在需要delete某个对象时,用load方法某个对象,性能更好。

2,update()方法将一个游离对象转变为持久化对象;

3,saveOrUpdate()方法包含了save()和update()方法;

4,merge()方法,合并对象;(如果在session缓存中有与某个OID重复的对象,此时使用update()的话就会报错,这时使用merge()就是将两个对象的属性合并后再更新)

5,delete()方法,删除对象;

Hibernate 操作对象

时间: 2024-07-29 18:25:52

Hibernate 操作对象的相关文章

Hibernate学习5—Hibernate操作对象

第一节:Hibernate 中四种对象状态 删除状态:处于删除状态的Java 对象被称为删除对象.比如说session delete一个对象,这个对象就不处于session缓存中了, 已经从session的缓存中移出来了,只要提交事务的话,对应的数据库记录也会被删除. 游离状态:比如说session被关闭了,这里面的对象就变为游离状态了,游离状态和删除状态中的对象,如果不用的话,会被垃圾收集器回收. 几种状态之间的转化: 例子: public class StudentTest { public

Hibernate学习5—Hibernate操作对象2

第二节:Session 常用方法讲解 2)load和get()方法: 数据库中不存在与OID 对应的记录,Load()方法会抛出异常: load方法默认采用延迟加载,load出来的对象是一个代理类.开始并没有值,只有用到它的属性等的时候,才会去发出sql语句. 而get方法一开始就发出sql语句. 如果说获取一个对象是为了删除它,可以用load,因为只要获取个引用就行了. 如果说获取一个对象是为了访问它的属性,建议用get: @Test public void testLoadClass() {

(五)Hibernate 操作对象

所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 中四种对象状态 临时状态(transient):刚用new 语句创建,还没有被持久化,并且不处于Sesssion 的缓存中.处于临时状态的Java 对象被称为临时对象. 持久化状态(persistent):已经被持久化,并且加入到Session 的缓存中.处于持久化状态的Java 对象被称为持久化对象. 删除状态(removed):不再处于S

Hibernate操作对象

一.操作实体对象 delete() save() saveOrUpdate() update() 二.操作缓存 clear() evict() flush() 三.查询实体对象 createCriterla() createQuery() get() load() 原文地址:https://www.cnblogs.com/denggelin/p/8319287.html

hibernate 大对象类型的hibernate映射

基本知识: 在 Java 中, java.lang.String 可用于表示长字符串(长度超过 255), 字节数组 byte[] 可用于存放图片或文件的二进制数据. 此外, 在 JDBC API 中还提供了 java.sql.Clob 和 java.sql.Blob 类型, 它们分别和标准 SQL 中的 CLOB 和 BLOB 类型对应. CLOB 表示字符串大对象(Character Large Object), BLOB表示二进制对象(Binary Large Object) Mysql

关于hibernate中对象的三种状态分析

一,首先hibernate中对象的状态有三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate().get().load():持久态到瞬态的方法有delete():游离态到持久态的方法有update().saveOrUpdate().lock():持久态到游离态的方法有:session.close().session.evict().session.clear(). 二,Hibernate的状态 hibernate的

Hibernate学习笔记(二) — 探索 hibernate 中对象的状态

一.hibernate中对象的状态有三种: 临时.游离和持久化,三种状态转化的方法都是通过session来调用的 什么是持久化? 通俗的讲,就是瞬时数据(比如内存中的数据,是不能永久保存的)持久化为持久数据(比如持久化至数据库中,能够长久保存) 二.三种状态的相互转换 session方法 session.save():该方法可以把一个对象从临时装填转换成持久化状态 session.get():从数据库中根据主键提取出一个对象,该对象就是一个持久化状态的对象 session.update():把一

hibernate中对象的三种状态分析

一,首先hibernate中对象的状态有 三种:瞬态.游离态和持久态,三种状态转化的方法都是通过session来调用,瞬态到持久态的方法有save().saveOrUpdate(). get().load():持久态到瞬态的方法有delete():游离态到持久态的方法有update().saveOrUpdate(). lock():持久态到游离态的方法有:session.close().session.evict().session.clear(). 二,Hibernate的状态 hiberna

hibernate操作数据库

一.概述 hibernate操作数据库一般分为5个步骤.开始事务--->执行sql操作--->提交事务,如果出现异常,还有一个回滚操作(即相当于撤销本次操作),最后就是关闭session. 代码框架如下: try { session= HibernateUtils.getSession();//获得session,这是hibernate能够操作数据库的核心对象. //开启事务. session.beginTransaction(); //sql语句的操作部分,这里的sql语句hibernate