计应134  徐雪双

1.持久化类

持久化类是指被需要被Hibernate持久化类到数据库中的实例所对应的类。Hibernate中操作的持久化类对象都是普通的Java类对象,与普通的JavaBean没什么区别,但是需注意:

(1)持久化类必须有一个无参的构造方法:Hibernate要求持久化类必须提供一个不带参数的默认构造方法,在程序运行时,Hibernate运用反射机制调用java.lang.reflect.Constructor.newInstance()方法来构造持久化类的实例。

(2)持久化类必须有一个唯一标识属性:在面向对象术语中,这个唯一标识属性被称为对象标识符(Object Identifier,OID),这个属性通常映射为数据库的主键,一般都是用整数表示,也可用其他类型。

(3)持久化类的每个属性必须提供set()和get()方法:get()和set()方法必须符合特定的命名规则,即“get”和“set”后紧跟属性的名字,且属性名的首字母需要大写。如:

name属性的set方法为setName(),get方法为getName()。

(4)若持久化的属性为boolean类型,其get方法名可用get为前缀,也可用is为前缀。

(5)持久化类何时需要实现java.io.Serializable接口取决于应用。

2.持久化对象的3种状态:

(1)瞬态:对象由new操作符创建,且尚未与Hibernate Session关联的对象被认为处于瞬态。瞬态对象不会被持久化到数据库中,也不会被赋予持久化标识。若程序中失去了瞬态对象的引用,瞬态对象将被自动回收。使用Hibernate Session可使其变为持久化状态。

(2)持久化:持久化实例在数据库中有相应的记录,拥有一个持久化标识。持久化对象必须与指定的Hibernate Session关联。若持久化对象改变,在对象操作完成时Hibernate会将对象数据自动协会数据库。

(3)脱管:实例处于持久化状态,但与之相关的Session被关闭,对象则处于脱管状态。托管对象的引用依然有效,对象可被继续修改。脱管对象重新转换为持久化状态需与Session关联,而该对象在脱管期间的改动也会写入数据库。

3.把持久化类映射到表中

Account.hbm.xml文件用于映射Account类,若需映射多个持久化类,方法一:在同一个映射文件中映射所有类。方法二:为每一个类创建单独的映射文件,映射文件与类同名,扩展名为hbm.xml。

4.Hibernate采用XML文件配置对象-关系映射的优点:

(1)Hibernate不会渗透到上层域模型中,也不会渗透到下层数据模型中。

(2)软件开发人员可以独立设计域模型,不必强迫遵守任何规范。

(3)数据库设计人员可以独立设计数据模型。

(4)对象-关系不依赖于任何程序代码,如需修改对象-关系映射,只需修改XML文件,不需修改程序,提高了软件的灵活性,使维护更加方便。

转载于:https://www.cnblogs.com/xu2shuang97664/p/4571801.html

Hibernate的持久化相关推荐

  1. hibernate教程--持久化类状态详解

    一. Hibernate的持久化类状态: 1.1 Hibernate的持久化类状态 持久化类:就是一个实体类 与 数据库表建立了映射. Hibernate为了方便管理持久化类,将持久化类分成了三种状态 ...

  2. hibernate教程--持久化类状态

    一. Hibernate的持久化类状态: 1.1Hibernate的持久化类状态 持久化类:就是一个实体类 与 数据库表建立了映射. Hibernate为了方便管理持久化类,将持久化类分成了三种状态. ...

  3. hibernate中持久化对象的生命周期(三态:自由态,持久态,游离态 之间的转换)

    三态的基本概念: 1,  临时状态(Transient):也叫自由态,只存在于内存中,而在数据库中没有相应数据.用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫临时对象: ...

  4. hibernate中持久化对象的生命周期(三态:自由态,持久态,游离态 之间的转换)...

    三态的基本概念: 1,  暂时状态(Transient):也叫自由态,仅仅存在于内存中,而在数据库中没有对应数据.用new创建的对象,它没有持久化,没有处于Session中,处于此状态的对象叫暂时对象 ...

  5. Spring Security 4 整合Hibernate 实现持久化登录验证(带源码)

    上一篇文章:Spring Security 4 整合Hibernate Bcrypt密码加密(带源码) 原文地址:http://websystique.com/spring-security/spri ...

  6. (转) Hibernate持久化类与主键生成策略

    http://blog.csdn.net/yerenyuan_pku/article/details/65462930 Hibernate持久化类 什么是持久化类呢?在Hibernate中持久化类的英 ...

  7. (转) Hibernate框架基础——操纵持久化对象的方法(Session中)

    http://blog.csdn.net/yerenyuan_pku/article/details/52761021 上一篇文章中我们学习了Hibernate中java对象的状态以及对象的状态之间如 ...

  8. Hibernate持久化对象的三种状态深入理解

    关于OID hibernate缓存是一个map,他会根据OID作为缓存对象的key,我们的映射文件中<id>标签指定的属性值会作为OID 持久化对象的三种状态 为了方便理解,Hiberna ...

  9. Hibernate持久化对象状态

    在Hibernate中,持久化对象再被操作过程中分为三个时期.这三个时期和session周期相关. 各自是瞬时(Transient),持久太(persistent)和游离态(Detached) 瞬时状 ...

最新文章

  1. php扩展开发中文教程.pdf,PHP扩展开发系列教程-1
  2. Qt中的自定义模型类
  3. linux 命令后面的参数小叙
  4. 前端使用正则表达式从接口地址栏取值并将对应的值展示在页面上
  5. 如何修改动态库符号表
  6. t4b代码生成_用T4模板实现简单的代码生成器
  7. ICCV2021 | 如何高效视频定位?QMUL北大Adobe强强联手提出弱监督CRM,性能SOTA
  8. 学习笔记 vs19 报错:E1696 C++ 无法打开 源 文件
  9. It企业的上市与退市
  10. python命令行进入帮助模式_Python 命令行之旅:深入 click 之选项篇
  11. 【Luogu】P2634聪聪可可(树形DP)
  12. Julia:和Julia相关的经济学网站 和初学者网站
  13. pads layout 无法将dxf文件导入进来的2D Line转换成Board Outline
  14. Office在线预览,PPT在线预览,word在线预览,Excel在线预览,PDF在线预览
  15. Vue控制表格列的显示隐藏
  16. SwiftUI - Shape(Circle, Rectangle,RoundedRectangle,Capsule,Path)
  17. ENVI_IDL: 批量制作专题地图
  18. 查找单链表倒数第k个元素
  19. AI 预测蛋白质结构「GitHub 热点速览 v.21.29」
  20. NDN-lite 命名数据网络 -----第一章:关于Interest和Data

热门文章

  1. 解决VisualStudio 05/08智能提示显示1秒钟
  2. 上新啦!OpenMMLab全面更新!
  3. 更快更精准的感知,元戎启行提出基于LiDAR的3D物体检测新框架|CVPR 2020
  4. 深度学习之PyTorch物体检测实战——新书赠送活动
  5. 港中文开源基于PyTorch的多任务人脸识别框架
  6. 热传递物理模型matlab,简单传热学计算机分析MatlabPDE二维不稳态焊接热传导求解.PPT...
  7. Fastformer:史上最强最快Transformer!清华、MSRA出品!
  8. YOLOv4改进版重磅问世!Yolov4原班人马重磅推出Scaled-YOLOv4!业界最佳
  9. 12岁上大学,23岁获博士学位,这位天才科学家正式加盟清华
  10. GBDT(梯度提升决策树)总结笔记