Hibernate简介
Hibernate是一个开放源代码的对象关系映射框架,它对JDBC进行了非常轻量级的对象封装,它将POJO与数据库表建立映射关系,是一个全自动的orm框架,hibernate可以自动生成SQL语句,自动执行,使得Java程序员可以随心所欲的使用对象编程思维来操纵数据库。 Hibernate可以应用在任何使用JDBC的场合,既可以在Java的客户端程序使用,也可以在Servlet/JSP的Web应用中使用,最具革命意义的是,Hibernate可以在应用EJB的JaveEE架构中取代CMP,完成数据持久化的重任。
Hibernate的API一共有6个,分别为:Session、SessionFactory、Transaction、Query、Criteria和Configuration。通过这些接口,可以对持久化对象进行存取、事务控制。
核心接口
• session:负责被持久化对象 CRUD 操作
• sessionFactory:负责初始化 hibernate,创建 session 对象
• configuration:负责配置并启动 hibernate,创建 SessionFactory
• Transaction:负责事物相关的操作
• Query 和 Criteria 接口:负责执行各种数据库查询
映射文件
一个对象/关系型映射一般定义在 XML 文件中。映射文件指示 Hibernate 如何将已经定义的类或类组与数据库中的表对应起来。
Xdoclet、Middlegen、AndroMDA工具包可帮助用户生成XML文件。
原理:
1、解析hibernate.cfg.xml配置文件
通过Configuration config = new Configuration().configure();
读取并解析hiberante.cfg.xml配置文件
2、读取并解析映射信息
hibernate.cfg.xml中的<mapping resource="com/User.hbm.xml"/>
映射文件
3、创建SessionFactory对象
SessionFactory sf = config.buildSessionFactory();
4、打开Session
Session session = sf.openSession();
5、创建并启动事务
Transaction tx = session.beginTransaction();
6、persistent operate操作数据,持久化操作
7、提交事务
tx.commit();
8、关闭session
9、关闭SessionFactory
优点
• 对 JDBC 访问数据库的代码做了封装,大大简化了数据访问层繁琐的重复性代码
• Hibernate 是一个基于 JDBC 的主流持久化框架,是一个优秀的 ORM 实现。它很大程度的简化了 DAO 层的编码工作
• Hibernate 使用 Java 反射机制,而不是字节码增强程序来实现透明性
• Hibernate 的性能非常好,因为它是个轻量级框架。映射的灵活性很出色。它支持各种关系数据库,从一对一到多对多的各种复杂关系