




已阅读5页,还剩24页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Hibernate框架 O R映射 本章主要内容 1 Hibernate的O R映射文件2 映射对象标识符3 Hibernate的类型本节重点 O R映射文件和主键生成器应用 编写简单的Hibernate程序 实现CRUD 1 O R映射定义 对象和关系数据库之间的映射通常是用一个XML文档 XMLdocument 来定义的 这个映射文档被设计为易读的 并且可以手工修改 映射语言是以Java为中心 这意味着映射文档是按照持久化类的定义来创建的 而非表的定义 Hibernate的映射文件 hbm xml 一个映射文件框架 注 映射文件可以包含多个类标记 但不推荐 1 1元素 该元素是Hibernate映射文件的根元素 包括一些可选的属性 1 2元素 用元素来定义一个持久化类 最常见的用法就是使用name和table来制定类和表的关联 1 2元素 1 2元素 注 对Hibernate来说 视图与表是没有区别的 如果想使用视图 又不能在数据库中创建它 则可以映射一个不可变 immutable 并且是只读的实体到一个给定的SQL子查询表达式 1 3元素 被映射的类必须定义对应数据库主键字段 元素定义了该属性到数据表主键字段的映射 1 3元素 可以自定义也可以使用Hibernate内置方式 1 4元素 JavaBean属性与数据库表字段的对应关系 1 4元素 属性介绍如下 1 4元素 关于type属性可以是如下几种 1 Hibernate基本类型名 比如 integer string character date timestamp float binary serializable object blob 2 Java类的全限定类名 该类等同于上面的一种Hibernate基础类型 比如 int float char java lang String java util Date java lang Integer java sql Clob 3 一个可以序列化的Java类的名字 4 一个自定义类型的类的名字 如 org crazyit model Bid 1 5其他属性 元素是可选的 指明了表中包含时间戳数据 元素是可选的 表明表中包含附带版本信息的数据 一对一和一对多持久化对象之间一对一的关联关系是通过元素定义的多对一关联通过元素定义元素允许定义一个命名的逻辑分组 grouping 包含一个类中的多个属性 元素可以定义应用程序有两个同样名字的持久化类 2 映射对象标识符 Hibernate使用对象标识符 OID 来建立内存中的对象和表中记录的对应关系 它和表的主键对应 为了保证OID的惟一性和不可变性 应该让Hibernate而不是应用程序来为OID赋值 同时带来的效果是 数据库表的主键值也是可由Hibernate生成自然主键和代理主键 推荐方式 2 1标识符的含义 作为主键的字段必须不能为空 值唯一且永不改变Java语言按内存地址区分不同的对象 这两种方式与数据库都很难对应 Hibernate给每个对象加一个标识符来区分对象 2 2内置生成器介绍 Hibernate来自动生成一个OID 使用的是元素 它用来设定标识符生成器 2 3Hibernate的内置标示符生成器的用法 1 increment标识符生成器由Hibernate以递增方式为代理主键赋值 增量为1 Hibernate在初始化时读取出表中主键最大值 在这个基础上加1 要求 其主键是long short int适用于单个hibernate访问同一个数据库的数据 但不可应用于集群中2 UUID生成器生成的主键包含IP地址和JVM启动时间 保证网络范围内唯一 2 3Hibernate的内置标示符生成器的用法 3 identity标识符生成器由底层数据库来生成标识符要求底层数据库支持自增类型OID必须为long int和short可用DB MySQL SQLServer Servler Sybase DB24 sequence标识符生成器由底层数据库提供序列来生成标识符要求数据库支持序列 可用DB Oracle DB2OID必须为long int和short 2 3Hibernate的内置标示符生成器的用法 5 hilo标识符生成器按照high low算法来生成标识符优点是适用于所有数据库缺点是只能在一个数据库中保证唯一OID必须为long int和short6 native标识符生成器根据数据库的能力 自动选择identity sequence hilo中的一种优点是适合跨平台开发缺点是OID必须为long int和short 2 4映射自然主键 当数据库表采用自然主键时 Hibernate使用assigned生成器来生成主键 generator的默认方式应用程序在save 之前必须手动地为对象分配一个标识符注 应尽量避免使用自然主键使用assigned生成器时 除非有一个version或timestamp属性 或者定义了Interceptor isUnsaved 否则需要让Hibernate使用unsaved value undefined 强制Hibernate查询数据库来确定一个实例是临时的还是脱管的 2 5复合自然主键 如果数据表的自然主键是复合键 那么在Hibernate中用元素定义 有3种方式可以选择 直接使用联合主键 mapped 映射式 组合标识符identifiercomponent 标识符组件 推荐 3Hibernate的类型 Hibernate的内置类型通常使用和Java类型相同的名字 3 1Java基本值类型的Hibernate映射 下表列出了Hibernate映射类型 对应的JAVA基本类型 包括它们的包装类 和以及对应的标准SQL类型 char java lang Character 3 2Java时间和日期类型的Hibernate映射类型 在Java中 代表时间和日志的类型包括 java util Date和java util Calendar此外在JDBCAPI中还提供了三个扩展java util Date类的子类 java sql Date java sql Time和java sql Timestamp 这三个类分别和标准的SQL类型中的DATA TIME TIMESTAMP类型对应 3 3Java大对象类型的Hibernate映射类型 在Java中 java lang String可用于表示长字符串 长度没有限制 字节数组byte 可用于存放图片或长文件的二进制组数据 此外 在JDBCAPI中又提供了java sql Clob和java sql Blob类型 它们分别和标准SQL中的CLOB和BLOB类型对应 3 4JDK自带的JAVA类的Hibernate映射类型 Hibernate可以直接把一些常用的Java类如class locale等类型保存在数据库中 3 5自定义值类型 Hibernate允许开发者创建属于他们自己的值类型 步骤 创建自定义类型类 该类必须实现org hibernate UserType或org hi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 去年李沧区数学试卷
- 社区爱心赠书活动方案策划(3篇)
- 惠州施工方案汇报(3篇)
- 双桥区盖板施工方案(3篇)
- 降粘剂施工方案(3篇)
- 绿化春节施工方案(3篇)
- 闲置物品收集活动策划方案(3篇)
- 砂糖橘活动策划方案案例(3篇)
- 安徽省芜湖市鸠江区2023-2024学年高二上学期第一次月考化学题库及答案
- 心灵驿站面试题目及答案
- 普通地质学及地貌课件
- 拓扑优化教学课件
- 孕期营养需求指南
- 项目征地拆迁应急预案
- 智能分拣与无人配送技术
- 幼儿园课程领导力在生长
- 2024年水发集团有限公司招聘笔试参考题库含答案解析
- 初中教师教学基本功培训内容课件
- 血尿护理查房
- 化学锚栓承载力计算
- 事业单位工作人员转正定级审批表
评论
0/150
提交评论