框架的搭建无外乎那几个步骤:
1.导包
2.创建数据库,准备表、实体
3.书写ORM元数据(对象与表的映射配置文件)
4.书写主配置文件
5.书写代码测试
此处不一一编写具体代码,着重介绍一下配置文件。
hibernate.cfg.xml主配置文件
当数据库版本高时,设置数据库方言:
hbm2ddl.auto的取值:
1.update【常用】:如果数据库中有表,使用原来的,没有则创建一张新的表,可以更新表的结构。
2.create:每次都会创建一个新的表(数据丢失)
3.create-drop:每次都会创建一个新的表,程序结束删除表
drop-->create--->insert执行事务操作--->drop
4.validate:只会使用原来的表,对映射关系进行校验。若表不存在则报错。
orm元数据配置
hibernate.hbm.xml 配置表与实体对象的关系配置(应与实体放在同一包下)
<hibernate-mapping package="实体类的包名">
<!--
class元素: 配置实体与表的对应关系的
name: 完整类名
table:数据库表名
-->
<class name="实体类名" table="表名">
<!-- id元素:配置主键映射的属性
name: 填写主键对应属性名
column(可选): 填写表中的主键列名.默认值:列名会默认使用属性名
type(可选):填写列(属性)的类型.hibernate会自动检测实体的属性类型.
每个类型有三种填法: java类型|hibernate类型|数据库类型
not-null(可选):配置该属性(列)是否不能为空. 默认值:false
length(可选):配置数据库中列的长度. 默认值:使用数据库类型的最大长度
-->
<id name="主键属性名" column="主键名">
<generation class="native"></generation>
<!--主键生成策略7个
native:相当于Hilo+sequence+identity自动三选一
sequence:oracle中的主键生成策略
identity:由底层数据库提供主键标识符,自增
UUID:产生随机字符串作为主键,主键类型必须是字符串
increment:了解,用于整数类型,由hibernate自动维护。以自增的方式
生成唯一标识,需要指定一个初始值。
Hilo:了解,高低位算法主键自增,由hibernate维护,开发时不使用自然主键
assigned:自然主键生成策略,hibernate不管理主键值,由开发人员录入
-->
</id>
<!-- property元素:除id之外的普通属性映射
name: 填写属性名
column(可选): 填写列名
type(可选):填写列(属性)的类型.hibernate会自动检测实体的属性类型.
每个类型有三种填法: java类型|hibernate类型|数据库类型
not-null(可选):配置该属性(列)是否不能为空. 默认值:false 为null。
length(可选):配置数据库中列的长度. 默认值:使用数据库类型的最大长度
-->
<property name="属性名" column="字段名" type="类型" not_null="默认false"
length="数据库默认类型长度"></property>
</class>
</hibernate-mapping>