Hibernate内部分装的技术:JDBC(Java Data Base Connectivity), JTA(Java Transaction API) , JNDI(Java Naming and Directory Interface) Hibernate 提供的api 访问数据库的操作的接口: Session Transaction Query Criteria 用于配置hibernate的接口: Configuration 回调接口,是应用程序接收hibernate内部发生的事件,并作出相应的回应 Interceptor Lifecycle Validatable 用于扩展hibernate功能的接口 UserType CompositeUserType IdentifierGenerator Hibernate 的核心接口:
Configuration: 作用:配置Hibernate,创建SessionFactory 特点:根启动 SessionFactory: 作用:初始化Hibernate , 创建Session, 充当数据存储源的代理 特点:一个SessionFactory对应一个数据存储资源。 线程安全,这意味着它的同一个实例可以被应用到不同的线程 它是重量级的,因为它需要一个很大的缓存,来存放预定义的SQL语句以及映射元数据。(这个缓存被称为Hibernate的第二级缓存) Session: 作用:负责增、删、改、查和加载 特点:线程不安全--------设计软件架构的时候应避免多线程共享 是轻量级的----创建和销毁不需要消耗太多资源 描述:Session 也被称为持久化管理器几乎提供了和持久化相关的全部操作,每个Session实例有一个自己缓存,成为Hibernate 的第一级缓存。它存放当前工作单元加载的对象。 Transaction: 作用:管理事务 Query和Criteria 作用:数据库查询 描述:这两个接口主要用于向数据库查询对象,并控制执行查询的过程 Hibernate的配置: 一、 基本配置 a) 在Hibernate的软件包中提供了hibernate.properties文件中包含了有关配置数据库信息的所有代码 二、 类的持久化----持久化的类必须符合JavaBean的规范: 私有属性, get、set方法,空构造------------Hibernate通过反射实现实例化 注意:Hibernate并不要求持久化类必须实现java.io.Serializable接口。但是对于采用分布式Java应用,当Java对象在不同的进程节点之间传输时,这个对象所属的类必须实现Serializable接口。此外,在Java Web应用中,如果希望对HttpSession中的Java对象进行持久化,那么这个Java对象所属的类也必须实现Serializable接口。
待续............