- Configuration类
- SessionFactory接口
- Session接口
- Transaction接口
- Query和Criteria接口
Configuration类
configuration类负责管理hibernate的配置信息并根据配置信息启动hibernate
hibernate配置有两种方法:
- 属性文件
- XML文件(推荐)
SessionFactory接口
SessionFactory实例对应一个数据存储源,SessionFactory特点:
- 线程安全(同一SessionFactory实例可以被应用的多个线程共享)
- 重量级的(需要很大的缓存存放预定义的sql语句和相应的一些映射数据)
(应用程序就是从SessionFacory中获取Session对象,如果一个应用程序只访问一个数据库,则只需建立一个SessionFactory对象)
Session接口
Session(持久化管理器,hibernate中应用最广泛的接口),Session的特点:
- 线程不安全(Session代表和当前数据库的一次操作,设计软件架构时,应该避免多个线程共享同一个Session实例)
- 轻量级(创建和销毁不需要太多的资源)
- Session被称为Hibernate的一级缓存(存放当前工作单元加载的对象,每个Session都有自己的缓存,缓存中的对象只能由当前工作单元使用)
- Session通过SessionFacory打开
- 它与Web层的HttpSession没有任何关系
Transaction接口
Transaction接口是Hibernate数据库事务接口,对底层的事务接口进行封装,包括JDBC API、JTA。
- Hibernate进行持久化操作时(CRUD)必须进行事务控制
Query和Criteria接口
Query和Criteria接口都是Hibernate的查询接口。
- Query包装了一个HQL(Hibernate Query Language)查询语句
- Criteria接口擅长于执行动态查询(面向对象)