一、 Hibernate的持久化类状态:
1.1Hibernate的持久化类状态
持久化类:就是一个实体类 与 数据库表建立了映射.
Hibernate为了方便管理持久化类,将持久化类分成了三种状态.
瞬时态 transient:(临时态)
持久态 persistent:
脱管态 detached:(离线态)
1.2三种持久化对象的状态:
Transient瞬时态:
特点:持久化对象没有唯一标识OID.没有纳入Session的管理.
Persistent持久态:
特点:持久化对象有唯一标识OID.已经纳入到Session的管理.
结论:持久化持久态对象有自动更新数据库的能力.
Detached脱管态:
特点:持久化对象有唯一标识OID,没有纳入到Session管理.
1.3区分三种持久化对象的状态:
@Test
// 区分持久化对象的三种状态:
public void demo1(){
// 1.创建Session
Session session = HibernateUtils.openSession();
// 2.开启事务
Transaction tx = session.beginTransaction();
// 向数据库中保存一本图书:
Book book = new Book();// 瞬时态:没有唯一标识OID,没有与session关联.
book.setName("Hiernate开发");
book.setAuthor("XX");
book.setPrice(65d);
session.save(book); // 持久态:有唯一标识OID,与session关联.
// 3.事务提交
tx.commit();
// 4.释放资源
session.close();
book.setName("Struts2开发"); // 脱管态:有唯一的标识,没有与session关联.
}
1.4三种状态对象转换:
1.4.1、瞬时态:
获得:
Book book = new Book();
瞬时--->持久
* save(book);
* save()/saveOrUpdate();
瞬时--->脱管
* book.setId(1);
1.4.2、持久态:
获得:
Book book = (Book)session.get(Book.class,1);
* get()/load()/find()/iterate();
持久--->瞬时:
* delete(book);
* 特殊状态:删除态.(被删除的对象,不建议去使用.)
持久--->脱管:
* session.close();
* close()/clear()/evict();
1.4.3、脱管态:
获得:
Book book = new Book();
book.setId(1);
脱管--->持久:
* session.update();
* update()/saveOrUpdate()/lock()
脱管--->瞬时:
* book.setId(null);
1.5持久态对象有自动更新数据库的能力;
@Test
// 测试持久态的对象自动更新数据库
public void demo2(){
// 1.创建Session
Session session = HibernateUtils.openSession();
// 2.开启事务
Transaction tx = session.beginTransaction();
// 获得一个持久态的对象.
Book book = (Book) session.get(Book.class, 1);
book.setName("Struts2开发");
// session.update(book);
// 3.提交事务
tx.commit();
// 4.关闭资源
session.close();
}
分享到:
相关推荐
hibernate-commons-annotations-4.0.1.Final.jar hibernate-core-4.1.12.Final.jar hibernate-ehcache-4.1.12.Final.jar hibernate-entitymanager-4.1.12.Final.jar hibernate-jpa-2.0-api-1.0.1.Final.jar ...
115网盘第二部分 精通hibernate3.0--java数据库持久层开发实践(付京周)
hibernate5--2.数据持久化及事务
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
HibernateTools-3.2.4,Hibernate工具包,开发使用,欢迎下载
赠送jar包:hibernate-jpa-2.1-api-1.0.2.Final.jar; 赠送原API文档:hibernate-jpa-2.1-api-1.0.2.Final-javadoc.jar; 赠送源代码:hibernate-jpa-2.1-api-1.0.2.Final-sources.jar; 赠送Maven依赖信息文件:...
HIBERNATE+-+符合Java习惯的关系数据库持久化
精通hibernate3.0--java数据库持久层开发实践(付京周) 分两卷下载,需要积分共1分。谢谢 精通hibernate3.0--java数据库持久层开发实践(付京周) 分两卷下载,需要积分共1分。谢谢
hibernate--3.Hibernate数据持久化(通过 Session 操纵对象)
HIBERNATE - 符合Java习惯的关系数据库持久化
HibernateTools-3.2.4.Beta1-R200810311334.zip
8.3 Java对象在Hibernate持久化层的状态 8.3.1 临时对象的特征 8.3.2 持久化对象的特征 8.3.3 被删除对象的特征 8.3.4 游离对象的特征 8.4 Session接口的详细用法 8.4.1 Session的save()和persist()...
HIBERNATE - 符合Java习惯的关系数据库持久化.htm
hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码 hibernate-jpa-2.1-api-1.0.0.final-sources.jar 源码
hibernatetools-Update-4.1.1.zip
Eclipse中Hibernate插件。
很多人为了配置jpa找这个动态产生字节码的jar文件,hibernate-distribution-3.3.1.GA包太大,而hibernate-distribution-3.3.2.GA的jar没有这个jar文件,希望对大家有用
hibernate-annotations-3.4.0.GA hibernate-annotations-3.4.0.GA hibernate-annotations-3.4.0.GA
Eclipse用于Hibernate框架开发插件,全CSDN最低资源分下载,让你吃上真正的石灰。。。