1.Hibernate概述:应用于javaee三层框架中的dao层框架,对数据库进行crud操作。
* 不需要写复杂的jdbc代码
*不需要写sql语句
*现在一般都是使用的是hibernate-release-5.0.7.Final
2.ORM思想:Object Relational Mapping(对象关系映射)
让实体类和数据库进行一一对应关系。(实体类和数据库表对应、实体类属性和表里面的字段对应)
Hibernate使用orm思想对数据库进行crud操作。
3.Hibernate入门:
* 搭建hibernate环境:
(1)导入必要的包:
(2)创建User实体类:
(3)创建数据库,但可以不需要创建表。
(4)配置实体类和数据库表一一对应的关系(映射关系),
>创建xml格式的配置文件,但映射的文件的位置和名称都没有规定,但建议是: 实体类名称.hbm.xml
(5) 创建Hibernate核心配置文件,核心配置文件的文件格式和位置是固定的,位置必须在src下,名称必须在hibernate.cfg.xml。
包含数据库信息、hibernate信息、把映射文件放进来:
(6)写一个测试类,实现添加操作:
> 第一步 加载hibernate核心配置文件
> 第二步 创建SessionFactory对象
> 第三步 使用SessionFactory创建session对象
> 第四步 开启事务
> 第五步 写具体的crud操作
> 第六步 提交事务
> 第七步 关闭资源
4.Hibernate配置文件详解:
Hibernate映射配置文件:
(1)映射配置文件的名称和位置没有固定的要求
(2)映射文件中,标签name属性值写实体类相关的内容
class标签name属性值是实体类的全路径
id标签和property标签name属性值是实体类属性的名称
(3)id标签和property标签的column属性是可是省略的,一旦省略后,就和name属性值是一样的。
(4)property标签type属性,设置生成表字段的类型,自动对应类型。
Hibernate核心配置文件:
(1)核心配置文件的名称和位置都是固定的,位置必须在src下,名称必须在hibernate.cfg.xml。
5.Hibernate核心API:
Configuration:
SessionFactory: 在创建sessionFactory过程中,这个过程是非常消耗资源的
延伸一下,既然非常消耗资源,那么能不能创建一个工具类,使得一个项目只创建一个sessionFactory对象:
具体实现:写一个工具类,写静态代码块实现。
Session(重点)
(1)session类似于jdbc中connection
(2)调用session里面的不同的方法实现crud操作
添加-->save方法
修改-->update方法
删除-->delete方法
根据id查询-->get方法
(3)session对象是一个单线程对象,只能一个人使用,不能共用。
Transaction:
(1)事务对象
(2)事务提交和回滚方法
tx.commit();
tx.rollback();