hibernate笔记--实体类映射文件"*.hbm.xml"详解
2016-12-22 17:26
381 查看
转载:http://www.cnblogs.com/fingerboy/p/5233939.html
实体类就是指普通的POJO,Hibernate并不知道那个实体类对应数据库的哪一张表,所以还需要配置一下,常用的方式就是*.hbm.xml文件[配置与@注解配置,这里介绍前者的详细属性:
主键映射
实体类最好有一个主键列,并有get/set方法,主键最好使用可以为Null值的数据类型,比如Integer,Long,String,而不要使用int ,long等,因为如果主键为null,表示这个实体类还没有保存到数据库,是一个临时状态(Transient),而int,long等基本数据类型没有这个功能.
主键生成规则:也成为主键生成策略,用的最多的就是native(自增长策略),
native:自动方式,根据底层数据库自动选择.
在class标签下,配置主键映射为:
普通属性映射
普通属性就是除主键外,java基本数据类型的属性,比如Integer(int),String,Date等,注意Integer默认为null,int默认为0.
xml中使用<property />标签配置普通属性.type指定列类型,
日期属性配置,与普通属性配置相同,只是type中指定的是日期类型即可,取值可以有date,time,timestamp(简写方式)
实体类就是指普通的POJO,Hibernate并不知道那个实体类对应数据库的哪一张表,所以还需要配置一下,常用的方式就是*.hbm.xml文件[配置与@注解配置,这里介绍前者的详细属性:
<?xml version="1.0"?> <!DOCTYPE hibernate-mapping PUBLIC "-//Hibernate/Hibernate Mapping DTD 3.0//EN" "http://www.hibernate.org/dtd/hibernate-mapping-3.0.dtd"> <!-- package声明pojo类所在的包,如果不写那么在class的name属性里需要指定包名全路径 schema指数据库模式,一个模式下可以有多张表 --> <hibernate-mapping package="com.wang.pojo"> <!-- class指映射一下pojo类,提供了公共的无参构造方法,通过反射产生对象 属性用private修饰,并且生成get,set方法 类不能用final来修饰, 类需要指明标识 ,即id属性 name:表示pojo类名 table:标识对应的数据库表名 --> <class name="User" table="user"> <!-- id:表示实体类的标识 对应数据库表中的主键 name:是指实体类的标识属性名 column表示对应数据库表的列名,如果不写,则数据库表中列名和属性名一致 length:标识数据库表中对应数据类型的长度,如果不写有默认长度 type表示类型,如果不写hibernate可以找到对应的pojo类的属性的类型,可以写成int,string,java.lang.Integer等等 --> <id name="id" column="id" > <!-- 主键生成策略 native:根据底层数据库能力选择identity,sequence,或者hilo中的一个 --> <generator class="native"></generator> </id> <!-- 实体类属性 --> <property name="name"/> <property name="pwd"/> </class> </hibernate-mapping>
主键映射
实体类最好有一个主键列,并有get/set方法,主键最好使用可以为Null值的数据类型,比如Integer,Long,String,而不要使用int ,long等,因为如果主键为null,表示这个实体类还没有保存到数据库,是一个临时状态(Transient),而int,long等基本数据类型没有这个功能.
主键生成规则:也成为主键生成策略,用的最多的就是native(自增长策略),
native:自动方式,根据底层数据库自动选择.
在class标签下,配置主键映射为:
<id name="id" column="id" > <generator class="native"></generator> </id>
普通属性映射
普通属性就是除主键外,java基本数据类型的属性,比如Integer(int),String,Date等,注意Integer默认为null,int默认为0.
xml中使用<property />标签配置普通属性.type指定列类型,
日期属性配置,与普通属性配置相同,只是type中指定的是日期类型即可,取值可以有date,time,timestamp(简写方式)
相关文章推荐
- hibernate笔记--实体类映射文件"*.hbm.xml"详解
- Hibernate实体类映射文件demo.hbm.xml 中的<generator class="?"></generator>的不同属性含义
- hibernate映射文件XXX.hbm.xml配置映射元素详解--对象标识符(OID)
- hibernate映射文件??.hbm.xml配置映射元素详解--Hibernate映射类型
- Hibernate中映射文件*.hbm.xml中type="date"和不写type="date"的区别?
- hibernate映射文件详解:xxx.hbm.xml文件详解
- 6.1 Hibernate映射文件详解(News***.hbm.xml)(1)
- hibernate教程____hibernate持久化(基于实体类注解和hbm.xml映射文件区别)
- hibernate映射文件??.hbm.xml配置映射元素详解
- [原创]java WEB学习笔记81:Hibernate学习之路--- 对象关系映射文件(.hbm.xml):hibernate-mapping 节点,class节点,id节点(主键生成策略),property节点,在hibernate 中 java类型 与sql类型之间的对应关系,Java 时间和日期类型的映射,Java 大对象类型 的 映射 (了解),映射组成关系
- hibernate映射文件 xx.hbm.xml配置映射元素详解--Hibernate映射类型
- hibernate中的映射文件xxx.hbm.xml详解总结
- 6.2 Hibernate映射文件详解(News***.hbm.xml)(2)
- Hibernate --- xxx.hbm.xml映射配置文件详解
- Hibernate中映射文件*.hbm.xml中type="date"和不写type="date"的区别?
- [原创]java WEB学习笔记77:Hibernate学习之路---Hibernate 版本 helloword 与 解析,.环境搭建,hibernate.cfg.xml文件及参数说明,持久化类,对象-关系映射文件.hbm.xml,Hibernate API (Configuration 类,SessionFactory 接口,Session 接口,Transaction(事务))
- Hibernate学习--映射文件xxx.hbm.xml详解
- Hibernate3.5.4---java application的xml和annotation环境搭建(hibernate.cfg.xml配置文件说明,映射文件Student.hbm.xml说明
- Hibernate***.hbm.xml配置文件详解
- hibernate持久化类映射文件*.hbm.xml