1.介绍
Hibernate 是一个开放源代码的对象关系映射框架,它对 JDBC 进行了轻量级的对象封装,使 Java 程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从 Java 类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用 JDBC 和 SQL 来手工操作数据库,Hibernate 可以大大减少操作数据库的工作量。 另外 Hibernate 可以利用代理模式来简化载入类的过程,这将大大减少利用Hibernate 从数据库提取数据的代码的编写量,从而节约开发时间和开发成本 Hibernate 可以和多种Web 服务器或者应用服务器良好集成,如今已经支持几乎所有的流行的数据库服务器。
2.原理
2.1.原理图
2.2 核心接口以及功能
1.Configuration接口 :负责配置并启动hibernate 加载配置类 xml
2.SessionFactory接口 : 负责初始化hibernate,负责 session 实例创建
3.Session接口 : 负责持久化对象的CRUD操作 ,这里 session 是应用和数据库的访问会话,不与 Web 的 session 混淆,负责访问数据库操作
4.Transaction接口 : 负责事务 (提交和回滚)
5.Query接口和Criteria接口 : 负责执行各种数据库查询
2.3 工作原理
1.通过Configuration().configure();读取并解析hibernate.cfg.xml配置文件
2.由hibernate.cfg.xml中的<mappingresource="com/xx/User.hbm.xml"/>读取并解析映射信息
3.通过config.buildSessionFactory();//创建SessionFactory
4.sessionFactory.openSession();//打开Sesssion
5.session.beginTransaction();//创建事务Transation
6.persistent operate持久化操作 //一般指Save这个方法
7.session.getTransaction().commit();//提交事务
8.关闭Session
9.关闭SesstionFactory
2.4 Hibernate 优点
1.对 JDBC访问数据库代码做了封装,降低了数据访问层代码耦合
2.Hibernate 是基于 JDBC的主流持久化框架,是一个优秀的关系映射实现,很大程度上减少了 DAO 层编码工作
3.Hibernate 使用 JAVA 反射机制
4.Hibernate 性能非常好,是一个轻量级框架,拥有灵活的关系映射,支持大多数关系数据库,从一对一到多对多的各种复杂关系