欢迎来到天天文库
浏览记录
ID:59476111
大小:1.08 MB
页数:34页
时间:2020-09-14
《Hibernate持久化对象状态和session缓存ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、Hibernate持久化对象状态和Session缓存本篇内容Hibernate中持久化对象的三种状态Session缓存一、持久化对象的三种状态Hibernate以持久化对象(PO)为基础,通过操作PO对象,进一步操作与PO对象关联的数据库表记录Hibernate编程,持久化对象主要存在三种状态瞬时状态(transientstate)持久状态(persistentstate)脱管状态(detachedstate)1.1瞬时状态(transientstate)当程序中通过new操作符实例化一个PO对象,而这个对象还
2、没有被Session对象操作,也就是没有和一个Session对象关联时,则称这个PO对象为瞬时状态对象瞬时状态对象的特点:没有与数据库表中的记录没有对应的映射关系Studentstu=newStudent();stu.setNumber(“1001”);..//省略其它属性设置Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSessio
3、n();session.beginTransaction();session.save(stu);session.getTransaction.commit();session.close();stu对象此时为“瞬时状态对象”1.2持久状态(persistentstate)如果一个PO对象与一个Session对象相关联,比如被Session对象保存的、加载的、更新的,则称这个PO对象为持久状态对象“与Session对象相关联”:意思是:被HibernateSession对象所接管,处在Session对象工作单元之
4、内Studentstu=newStudent();stu.setNumber(“1001”);..//省略其它属性设置Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSession();session.beginTransaction();session.save(stu);session.getTransaction.commit()
5、;session.close();stu对象此时为“持久状态对象”持久状态——session保存的持久状态——session更新的Studentstu=newStudent();stu.setId(1);stu.setNumber(“1001”);..//省略其它属性设置Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSession()
6、;session.beginTransaction();session.update(stu);session.getTransaction.commit();session.close();stu对象此时为“持久状态对象”持久状态——session加载的Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSession();session
7、.beginTransaction();Studentstu=(Student)session.get(Student.class,1);session.getTransaction.commit();session.close();stu对象此时为“持久状态对象”持久状态对象的特点持久状态对象的特点:与数据库表中的一条记录有对应的映射关系与Session相关联,位于Session对象缓存之中持久状态对象有改变,事务提交之后,Hibernate会自动检测到其变化,并将变化反映到数据库之中1.3脱管状态(detac
8、hedstate)当与持久状态对象关联的Session关闭后,该对象就变成脱管状态对象Configurationcf=newConfiguration();cf.configure();SessionFactorysf=cf.buildSessionFactory();Sessionsession=sf.openSession();session.beginTransac
此文档下载收益归作者所有