开源的对象/关系映射框架–Hibernate
Hibernate简介
Hibernate官网
Hibernate是一个开源的对象/关系映射框架,或者说Hibernate是一个流行的持久层的框架,Hibernate对JDBC操作数据库的代码进行了轻量的封装,使得开发人员能够更自然地使用面向对象的方式操作数据库,大大简化了代码的编写。
Hibernate框架搭建
Hibernate框架的搭建大致分为六个步骤:
1、导入Jar包
2、创建数据库、数据表
3、创建实体
4、配置对象与表的映射
5、配置主配置文件
6、测试
搭建Hibernate框架所用到的必须的jar
包,位于hibernate-release-5.3.1.Final\lib\required
Hibernate映射文件
实体类是普通(POJO)的Java类,并不具备持久化操作的能力,而映射文件能够将实体类中的属性映射到数据库中相应的的表字段中。Hibernate
的映射文件通常以xxx.hbm.xml
的形式命名,其中xxx
指的是实体类名称,并且为了方便维护,映射文件通常放置在与实体类相同的目录下。例如将一个User实体类映射到数据库中的user表中:
1 | package com.my.domain; |
1 | CREATE TABLE `user` ( |
数据表与实体类都创建好之后便可以进行映射了:
1 | <?xml version="1.0" encoding="UTF-8"?> |
在上面的User.hbm.xml文件中,已经将实体类User映射到了数据库中的user表中,下面来看看映射文件中各个元素以及元素里面的属性的含义:
各个元素以及元素里面的属性的含义:hibernate-mapping
: 映射文件的根元素,所有的
package属性
:配置包名,如果配置了此属性,在元素内部凡是要填写完整类名的属性,可以直接写类名class
: 定义与数据表进行映射的实体类
name属性
:实体类名称
table属性
:与实体类进行映射的表名称id
: 配置实体类中唯一属性与数据表的主键进行映射
name属性
:实体类中用于与数据表主键进行映射的属性
column属性
:数据表主键generator
: 指定主键的生成策略
class属性
:主键的生成策略(7个):
identity
:主键自增。由数据库来维护主键,录入时不需要指定主键
sequence
:Oracle中的主键生成策略
increment
:主键自增,由Hibernate维护,每次插入前先查询表中的id值,然后+1
Hilo
:高低位算法,主键自增,由Hibernate维护
native
:Hilo+sequence+identity,自动三选一策略
UUID
:产生随机字符串作为主键,主键类型必须为String
assigned
:自然主键生成策略,hibernate不会管理主键,由开发人员录入property
: 除了主键数属性之外的普通属性的映射
name属性
:实体类中普通属性名称
column属性
:数据表中对应的列名称
以上只是映射文件中的部分元素及属性的含义。
Hibernate主配置文件
Hibernate的映射文件负责实体类属性与数据库表字段之间的映射,而Hibernate主配置文件则负责配置连接持久层以及导入映射文件,Hibernate主配置文件有两种形式,一种是资源文件,即hibernate.properties
,另一种是xml文件,hibernate.cfg.xml
,两种文件的形式的主配置文件是等价的,但通常使用hibernate.cfg.xml
来作为hibernate的主配置文件,因为xml格式的文件更容易修改。hibernate的主配置文件一般放置在src
目录下。下面是一些常用的配置信息:
1 | <?xml version="1.0" encoding="UTF-8"?> |
Hibernate
作为当下最为流行的持久层框架之一,其所涉及到的知识远远不止以上这些,关于Hibernate其他的一些学习研究,以后有时间在继续更新。