映射文件普遍来说的命名格式是xxx.hbm.xml。
<class>标签:用来将类与数据库表建立映射关系
属性:
name:类中的全路径
table:表名(如果类与表名一致,那么table属性可以省略)
catalog:数据库的名称(一般不需要写)
子标签:
<id>标签:用来将类中的属性和数据库表中的主键建立映射,id就是用来配置主键的.
属性:
name:类中的属性名
column:数据库表中的字段名(如果类中的属性名和表中的字段名相同,可以省略)
length:数据的长度(如果数据库建立好了,可以不写;如果没创建好,生成表结构是,length最好指定)
<property>标签:将类中的属性与表中的字段建立映射
属性:
name:类中的属性名
column:表中的字段名(如果类中的属性名和表中的字段名相同,可以省略)
length:数据的长度
type:数据类型(一般不需要写)
Hibernate的数据类型:type="string"
Java的数据类型:type="Java.lang.String"
数据库字段的数据类型:<column name="xxx" sql-type="varchar"/>
比较常用的主键的生成策略
- increment 适用于short,int,long作为主键
不是使用的数据库自动增长机制,Hibernate提供的一种增长机制
当前数据库最大值+1作为新纪录的主键
问题:不能再并发访问个集群情况下使用
- UUID
适用于char,varchar类型作为主键
使用随机的字符串作为主键
- native 本地策略,根据底层数据库的不同,自动选择适合该数据库的生成策略(short,int,long)
MySQL:indentity
Oracle:sequence
- assigned:主键生成不要Hibernate管理,必须手动设置主键