欢迎来到天天文库
浏览记录
ID:14325356
大小:41.00 KB
页数:10页
时间:2018-07-27
《hibernate映射文件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、Hibernate映射文件一.Hibernate映射文件的作用:Hibernate映射文件是Hibernate与数据库进行持久化的桥梁二.Hibernate映射文件的格式1.Hibernate映射文件基本内容:Hibernate映射文件是*.hbm.xml的xml文件,所以该文件必须遵循xml规则,即必须有头文件和DTD规范
2、bernate.sourceforge.net/hibernate-mapping-3.0.dtd">2.Hibernate映射文件主要内容:(1).映射内容的定义:Hibernate映射文件由节点定义映射内容并指定所对应的JavaBean的位置(也可以不在该节点中用package属性指定对应的JavaBean位置,而在该节点下的class节点中的name属性中指定)(2).数据库和JavaBean的关联:Hibernate映射文件中用3、ing>节点下的节点指定数据库表和JavaBean的关联(3).主键映射:在节点下用节点映射对应的主键,该节点必须有且只有一个(因为主键只有一个),同时必须放在<4、property...>节点前(4).主键映射方式:在节点下用节点指定Hibernate向数据库插入数据时主键的生成方式①.assigned:由外部程序负责生成(在session.save()之前为对象的主键设置值),无需Hibernate参与②.native:Hibernate根据数据库自动判断选择identity/hilo/sequence中的一种作为主键生成方式(跨数据库时使用)注:使用Oracle数据库时Hibernate默认会去查找Oracle中的hibernate_sequenc5、e序列,如果Oracle中没有该序列,连接Oracle数据库时会报错③.identity:采用数据库提供的主键生成机制,为long/short/int型列生成唯一标识(如:DB2、SQLServer、MySQL、Sybase、HypersonicSQL中的主键生成机制)④.sequence:采用数据库提供的sequence机制生成主键,用于用序列方式产生主键的数据库(如:Oracle、DB2等的Sequence),用于为long/short/int型列生成唯一标识,如:6、uence">序列名⑤.increment:Hibernate按递增方式设定主键(先获取当前记录主键的最大值后再将该值加1作为主键),用于为long/short/int型列生成唯一标识(没有其它进程向同一表中插入数据时用,在集群下不宜使用)⑥.hilo:通过hi/lo算法生成主键,需要额外的数据库表保存主键生成历史状态(给定一个表和字段(默认分别是hibernate_unique_key和next_hi)作为高位值得来源),用于为long/short/int型列生成唯一标识(该方法生成的标识符只在一个特定的数据库7、中是唯一的,在使用JTA获得的连接或者用户自行提供的连接中,不要使用这种生成器)先建hi_value表,再建next_value列(必须要有初始值),如:high_valnextval5⑦.seqhilo:类似hilo,通过hi/lo算法生成主键(适用于支持Sequence的数据库,如Oracle)⑧.foreign:使8、用外部表的字段作为主键,和联合使用,如:
3、ing>节点下的节点指定数据库表和JavaBean的关联(3).主键映射:在节点下用节点映射对应的主键,该节点必须有且只有一个(因为主键只有一个),同时必须放在<
4、property...>节点前(4).主键映射方式:在节点下用节点指定Hibernate向数据库插入数据时主键的生成方式①.assigned:由外部程序负责生成(在session.save()之前为对象的主键设置值),无需Hibernate参与②.native:Hibernate根据数据库自动判断选择identity/hilo/sequence中的一种作为主键生成方式(跨数据库时使用)注:使用Oracle数据库时Hibernate默认会去查找Oracle中的hibernate_sequenc
5、e序列,如果Oracle中没有该序列,连接Oracle数据库时会报错③.identity:采用数据库提供的主键生成机制,为long/short/int型列生成唯一标识(如:DB2、SQLServer、MySQL、Sybase、HypersonicSQL中的主键生成机制)④.sequence:采用数据库提供的sequence机制生成主键,用于用序列方式产生主键的数据库(如:Oracle、DB2等的Sequence),用于为long/short/int型列生成唯一标识,如:6、uence">序列名⑤.increment:Hibernate按递增方式设定主键(先获取当前记录主键的最大值后再将该值加1作为主键),用于为long/short/int型列生成唯一标识(没有其它进程向同一表中插入数据时用,在集群下不宜使用)⑥.hilo:通过hi/lo算法生成主键,需要额外的数据库表保存主键生成历史状态(给定一个表和字段(默认分别是hibernate_unique_key和next_hi)作为高位值得来源),用于为long/short/int型列生成唯一标识(该方法生成的标识符只在一个特定的数据库7、中是唯一的,在使用JTA获得的连接或者用户自行提供的连接中,不要使用这种生成器)先建hi_value表,再建next_value列(必须要有初始值),如:high_valnextval5⑦.seqhilo:类似hilo,通过hi/lo算法生成主键(适用于支持Sequence的数据库,如Oracle)⑧.foreign:使8、用外部表的字段作为主键,和联合使用,如:
6、uence">序列名⑤.increment:Hibernate按递增方式设定主键(先获取当前记录主键的最大值后再将该值加1作为主键),用于为long/short/int型列生成唯一标识(没有其它进程向同一表中插入数据时用,在集群下不宜使用)⑥.hilo:通过hi/lo算法生成主键,需要额外的数据库表保存主键生成历史状态(给定一个表和字段(默认分别是hibernate_unique_key和next_hi)作为高位值得来源),用于为long/short/int型列生成唯一标识(该方法生成的标识符只在一个特定的数据库
7、中是唯一的,在使用JTA获得的连接或者用户自行提供的连接中,不要使用这种生成器)先建hi_value表,再建next_value列(必须要有初始值),如:high_valnextval5⑦.seqhilo:类似hilo,通过hi/lo算法生成主键(适用于支持Sequence的数据库,如Oracle)⑧.foreign:使
8、用外部表的字段作为主键,和联合使用,如:
此文档下载收益归作者所有