17.12.27,web学习第三十五天,还有一年,努力吧青年Hibernate
35.Hibernate
1. Strtus2代替了servlet,hibernate框架代替了dbutils,jdbc。
Mapping:映射
2. Orm分四级:
Hibernate属于4级,完全面向对象的操作数据库
Mybatis:属于2级
dbUtils:1级
3. Hibernate 框架搭建:
1)导包:数据库驱动包
2) 创建数据库,准备表
3)书写orm元数据(对象与表的映射配置文件)
1)导入约束(以主配置约束为例)
2)实体
3)Orm元数据
4)书写主配置文件
参数均来自于hibernate-release-5.0.7.Final-project-etc-hibernate.properties文件
4. 配置文件详解
1)orm元数据配置
<hibernate-mapping pakeage=”cn.xxx”> </hibername-mapping> Pakeage属性填写一个包名,那么在元素内部所有需要写完整类名的属性均可以写简单类名。 |
<class name=”” table=”” > <id name=”” column=””> <generator> </generator> </id> <property name=”” column=”” type=”” not-null=””></property> </class> Class元素配置实体与表的对应关系 name属性:完整类名 Table属性:填写数据库表名 Id:元素配置主键映射属性 name 属性填写主键对应属性名 column 填写表中的主键列名 。不写此属性默认使用name generato元素:主键生成策略 Property元素:配除了id(主键)之外的普通id映射 name 属性填写属性名 column 填写表中的列名 Type (可选)填写列(属性)的类型,hibernate会自动检测实体 的属性类型,有三种写法 Not-null (可选) 配置该列是否不能为空,默认false(能为空) Length(可选):配置数据库的属性的长度,默认配置数据库类型 的 最大长度
|
2)hibernate主配置
1)必选属性配置 5个 2)可选属性配置 3)元数据引入配置 |
5. hibernateAPI详解
Configuration对象
配置加载类,用于加载主配置,orm元数据加载 Configuration conf=new Configuration();//调用空餐构造 Conf.configure(); //读取指定主配置文件-空餐-加载src下的 hibernate.cfg.xml文件 如果主配置中已经引入映射配置,不需要手动加载orm元数据 SessionFactory sf=conf.buildSessionFactory();//根据配置信息创建SessionFactory对象 |
SessionFactory对象
sessionFactory功能:用于创建操作数据库核心对象session对象的工厂, sessionFactory负责保存和使用所有配置信息,消耗内存资源非常大 属于线程安全的设计 保证web项目中,只创建一个sessionFactory Sf.openSession();//打开一个新的session对象 sf.getCurrentSession();//获得一个与线程绑定的session对象 |
Session
Session对象功能 表达hibernate框架与数据库之间的连接(会话),session类似于connection,还可以完成对数据库的增删改查操作,session是操作数据库的核心对象。 Transaction tx=Session.getTransaction();//获得操作事务的Transaction对象 Transaction tx2=session.beginTransaction(); 获得并操作事务的Transaction对象(常用) |
Transaction对象
Session.save();//保存 Tx2.commit(); Tx2.rollback(); Session.close();//释放资源 Sf.close();//释放资源 |
6. 若想查看框架源码则需要关联源码:
hibernate-release-5.0.7.Final.zip