1.Hibernate对JDBC进行了轻量级的封装,所以JAVA程序员可以使用OO(Object Oriented ,面向对象)的思想来操作数据库
2.Hibernate是应用程序和RDB(关系数据库)间的桥梁
3.Hibernate通过配置文件(hibernate.cfg.xml)和映射文件(*.hbm.xml)把java对象(POJO,plain old java object)或持久化对象(Persistent Object,PO)映射到数据库表中
4.程序员通过对持久化对象PO(Persistent Object)的操作,实现数据库的增删改查
5.Hibernate体系主要包括下面功能:
对象持久化技术:利用java反射技术来持久化对象,可以轻松处理大量不同类型的持久化对象
HQL语句:抽象了SQL语句,提出了自己的HQL语句,减轻了开发人员学习SQL语句的负担
事务服务:借助JDBC(Java Data Base Connectivity)、JTA(Java Transaction API)等技术实现事务处理和调度
数据库方言技术:屏蔽了不同数据库间的SQL上的细微差距,实现了跨数据库数据处理
6.Hibernate架构的核心组件
配置文件:配置和数据库链接的参数
映射文件:描述对象属性和数据库字段映射关系
持久化对象:是一个javabeans,特殊是其与session相关联,有三种状态
临时状态(transient):对象在内存中孤立存在,不和数据库中的数据有任何关系
持久化状态(persistent):对象和一个session相关联,则从临时状态变为持久化状态
游离状态(detached):Session 关闭,对象进入游离态
SessionFactory接口:用来创建session类实例,该类是线程安全的,可以被多线程并发调用,在实际应用中只需要创建该类的一个实例即可
ConnectionProvider类:用来读取Hibenate配置文件,生成SessionFactory对象,连接JDBC
Session接口:封装了JDBC用于操作的PO,提供了维护数据的CRUD(增删改方法),session是非线程安全的,每执行一个数据库事务应该创建一个session实例
Query接口:对PO进行查询操作,可以从Session的createQuery()生成
TransactionFactory:用来创建Transaction实例的工厂。它可以用来选择事务类型,其中包括Hibenate可以处理的三种事务JDBC JTA JNDI(Java Naming and Directory Interface,Java命名和目录接口);用来管理和数据库交互过程中的事务,主要方法是commit()rollback()
Transaction接口:用来管理与数据库交互过程中的事务