网站大量收购独家精品文档,联系QQ:2885784924

Hibernate映射文件.doc

  1. 1、本文档共14页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
Hibernate映射文件一.Hibernate映射文件的作用:Hibernate映射文件是Hibernate与数据库进行持久化的桥梁二.Hibernate映射文件的格式 1.Hibernate映射文件基本内容:Hibernate映射文件是*.hbm.xml的xml文件,所以该文件必须遵循xml规则,即必须有头文件?xml version=1.0 encoding=UTF-8?和DTD规范!DOCTYPE hibernate-mapping PUBLIC -//Hibernate/Hibernate Mapping DTD//EN /hibernate-mapping-3.0.dtd 2.Hibernate映射文件主要内容: (1).映射内容的定义:Hibernate映射文件由hibernate-mapping package=JavaBean所在包的全路径节点定义映射内容并指定所对应的JavaBean的位置(也可以不在该节点中用package属性指定对应的JavaBean位置,而在该节点下的class节点中的name属性中指定) (2).数据库和JavaBean的关联:Hibernate映射文件中用hibernate-mapping节点下的class name=JavaBean名称(该节点的父节点中用package属性指定了JavaBean的包名时用)/全路径(该节点的父节点中没用package属性指定JavaBean的包名时用) table=对应数据库中的表名节点指定数据库表和JavaBean的关联 (3).主键映射:在class ...节点下用id name=数据库中主键在JavaBean中的属性名称 column=数据库中主键名 type=java.lang.String节点映射对应的主键,该节点必须有且只有一个(因为主键只有一个),同时必须放在property ...节点前 (4).主键映射方式:在id ...节点下用generator class=映射方式/节点指定Hibernate向数据库插入数据时主键的生成方式 ①.assigned:由外部程序负责生成(在session.save()之前为对象的主键设置值),无需Hibernate参与 ②.native:Hibernate根据数据库自动判断选择identity/hilo/sequence中的一种作为主键生成方式(跨数据库时使用) 注:使用Oracle数据库时Hibernate默认会去查找Oracle中的hibernate_sequence序列,如果Oracle中没有该序列,连接Oracle数据库时会报错 ③.identity:采用数据库提供的主键生成机制,为long/short/int型列生成唯一标识(如:DB2、SQL Server、MySQL、Sybase、HypersonicSQL中的主键生成机制) ④.sequence:采用数据库提供的sequence机制生成主键,用于用序列方式产生主键的数据库(如:Oracle、DB2等的Sequence),用于为long/short/int型列生成唯一标识,如:generator class=sequenceparam name=sequence序列名/param/generator ⑤.increment:Hibernate按递增方式设定主键(先获取当前记录主键的最大值后再将该值加1作为主键),用于为long/short/int型列生成唯一标识(没有其它进程向同一表中插入数据时用,在集群下不宜使用) ⑥.hilo:通过hi/lo算法生成主键,需要额外的数据库表保存主键生成历史状态(给定一个表和字段(默认分别是hibernate_unique_key和next_hi)作为高位值得来源),用于为long/short/int型列生成唯一标识(该方法生成的标识符只在一个特定的数据库中是唯一的,在使用JTA获得的连接或者用户自行提供的连接中,不要使用这种生成器) 先建hi_value表,再建next_value列(必须要有初始值),如:generator class=hiloparam name=tablehigh_val/paramparam name=columnnextval/paramparam name=max_lo5/param/generator ⑦.seqhilo:类似hilo,通过hi/lo算法生成主键(适用于支持Sequence的数据库,如Oracle) ⑧.foreign:使用外部表的字段作为主键,和one-to-one联合使用,如:id name=id type=string unsaved-value=nullcolumn name

文档评论(0)

me54545 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档