1. 什么是Hibernate 及其应用。
首先, Hibernate 是一个数据库操作的框架,可以简化数据库操作代码,提升开发效率。
其次,Hibernate 是对JDBC 技术的一个封装。因为原有的JDBC技术在操作数据时,有以下几点不足:
1)需要编写复杂的SQL 语句。
2)需要编写大量的代码实现对象和表记录之间的转换。
3)数据库移植性较差
再次,Hibernate 框架可以解决上述JDBC 的不足,它有以下优点:
1)可以自动生成SQL
2)可以自动完成实体类和表记录之间的转换(映射)
3)可以增强数据库的移植性
2.Hibernate 的设计原理
Hibernate 框架是基于ORM 思想对JDBC 进行封装设计的。
ORM(Object Relation Mapping) 被称为对象关系映射。主要思想是能够完成程序中Java实体对象和关系数据库中表记录之间的转换。可以将对象直接写入数据库,
查询时可以直接从数据库中以对象的形式取出结果。中间对象和记录的转换细节由ORM框架负责,开发者对底层细节不用关心。
3.Hibernate 框架结构
Hibernate 框架使用时,需要以下几个重要文件:
1)实体类(*.java,n个)
2)hibernate.cfg.xml(仅1个) 它是Hibernate框架的主配置文件,主要定义数据库和框架的一些连接参数
3).hbm.xml (n 个) 它是Hibernate 框架的映射描述文件,主要描述实体类和数据表,类属性和表字段之间的对应关系。
4)Hibernate 编程API
① Configuration 负责加载hibernate.cfg.xml 配置文件
② SessionFactory 负责生成数据库的连接对象(Session)
③ Session 代指程序与数据库的一个连接,用于执行增、删、改、查等基本操作。
④ Query 用于执行非主键查询的操作。(HQL语句)
⑤ Transaction 用于事务控制,将两个或两个以上的DML操作封装成一个整体操作。
4. Hibernate 基本应用
使用步骤:
1)引入Hibernate 框架开发包、数据库驱动包
2)引入Hibernate.cfg.xml 配置文件(src)
3)根据数据表编写一个实体类
4)编写*.hbm.xml映射描述文件(描述实体类和表之间的对应关系)
5)使用Hibernate API 编程
// 按主键作条件查询
session.load(); session.get();
//添加记录 - 插入
session.save(obj); 主键值生成方式在hbm.xml映射描述部分设置;进行DML操作,必须显示追加事务commit
//更新记录- 更新1行(按主键做条件)
session.update(obj); obj 需要通过session.get/load 查询,不推荐new 方式,因为会将未设置属性值的字段清空
//删除记录-删除一行(按主键做条件)
session.delete(obj); obj可以通过session.get/load 查询,也可以new 指定id 值
5.Hibernate 映射类型
在hbm.xml中定义属性和字段映射时,通过type 属性指定映射类型,可以采用下面两种方式指定:
1)指定Java类型: java.lang.String; java.lang.Integer
2)Hibernate 映射类型(推荐)
字符串:string ; 整数:byte, short, integer, long ; 浮点数:float, double ; 日期:date, time, timestamp ;
boolean类型:true_false: 完成实体类boolean属性和表字段char之间转换。 true值转换成 T; false值转换成 F
yes_no: 完成实体类boolean 属性和表字段char之间的转换。 true值转换成Y; false值转换成N