1.ORM(Object Relation Mapping):对象关系映射-主要解决对象-关系的不匹配
ORM的实现思想:将关系数据库中表中的记录映射成为对象,以对象的形式展示,程序员可以把对数据库的操作转化为对对象的操作。因此ORM的目的是为了方便开发人员以面向对象的思想来实现对数据库的操作。
ORM一般采用了XML的格式保存对象与关系数据表的映射
2.Hibernate:开源的持久层框架
ORM映射工具,建立对象模型和关系数据模型之间的映射
对JDBC进行封装,负责java对象的持久化,用于java项目中对主流数据库的访问
3.Hibernate映射文件规范(头文件)在org.hibernate.hibernate-mapping-3.0.dtd文件中
4.Hibernate主配置文件:以xml格式配置hibernate的初始化信息(连接数据库的基本属性、数据库方言、内置常量),这个文件可以在classpath的任意目录下。习惯性命名hibernate.cfg.xml
该主配置文件的规范在org.hibernate.hibernate-configuration-3.0.dtd文件中
5.相关API
(1) Configuration:负责读取主配置文件的信息。包括:
Hibernate运行的底层信息:数据库的URL、用户名、密码、JDBC、驱动类、数据库Dialect,数据库连接池等(对应hibernate.cfg.xml文件)
持久化类与数据表的映射关系(*.hbm.xml文件)
(2)SessionFactory接口:Configuration对象根据当前的配置信息生成SessionFactory对象,因此SessionFactory对象中保存了当前的数据库配置信息和所有映射关系以及预定义的SQL语句。同时SessionFactory负责维护Hibernate的二级缓存
作用:生成Session的工厂 Session session=sf.openSession();
注意:一般情况下一个应用只初始化一个SessionFactory对象
(3)session接口:是应用程序与数据库之间交互操作的核心对象,是Hibernate运作的中心,所有持久化对象(javabean)必须在session的管理下才可以进行持久化(更新数据库)操作
主要方法:取得持久化对象的方法:get() load()
持久化对象保存,更新和删除:save(),update(),saveOrUpdate(),delete()
开启事务:beginTransaction()
管理Session的方法:isOpen(),flush(),clear(),evict(),close()等
(4)transaction接口:代表依次数据库访问的最小操作,具有数据库事务的概念。所有持久层都应该在事务管理下进行,即使是只读操作
主要方法:commit():提交相关联的session实例
rollback():撤销事务操作
wasCommitted():检查事务是否提交
(5)Query接口:封装数据库查询的返回结果(hql的查询方式)
常用方法:Iterator():获取查询结果的迭代器对象
list():以集合方式获取查询结果
6.CRUD(增删改查步骤)
(1)建立工厂类
public class SessionFactoryUtil {
private static SessionFactory sf;
private SessionFactoryUtil(){
}
public static SessionFactory getSessionFactory(){
if(sf==null){
Configuration config=new Configuration();
config.configure("/hibernate.cfg.xml");
// 可以获取sessionFactory对象,相当于获取DataSource
sf=config.buildSessionFactory();
}
return sf;
}
}
(2)创建SessionFactory实例
SessionFactory sf = SessionFactoryUtil.getSessionFactory();
(3)获取Session对象
Session session = sf.openSession();
(4)用Session对象操作实例类
例如: session.save(person);
(5)提交并关闭Session
ts.commit();
session.close();
7.增删改查具体方法
8.Hibernate运行流程