Hibernate面试题部分汇总集合(8)
时间:2025-02-28
时间:2025-02-28
此文档主要简绍J2EE中的hibernate面试突击问题部分集合
Hibernate管理Session对象的方式有哪
些?
尽管让程序自主管理Session对象的生命周期也是可行的,但是在实际Java 应用中,把管理Session对象的生命周期交给Hibernate,可以简化 Java应用的程序代码和软件架构。
Hibernate 自身提供了 3 种管理Session对象生命周期的方式:
(1)Session对象的生命周期与本地线程绑定。
(2)Session对象的生命周期与 JTA事务绑定。
(3)Hibernate委托程序管理 Session对象的生命周期。
它包含了业务逻辑代码,创建 SessionFactory 对象的代码、管理 Session 对 象的代码,以及执行数据库事务的代码。对于复杂的软件应用,需要细分 BusinessService类的功能,建立精粒度的对象模型。精粒度的对象模型把功能逐步分解为多个模块,然后分配给多个类来协作完成。精粒度的对象模型可以减少重复代码,而且能提高每个类的独立性,有利于软件的维护和可重用。 本节将进一步细分 BusinessService类的功能,并且由多个类来分担 BusinessService类的功能:
● HibernateUtil类:实用类,负责创建一个应用范围内的 SessionFactory 对象,它的 getSessionFactory()静态方法返回这个 SessionFactory 对象。它的getCurrentSession()静态方法返回当前的 Session对象。 ● Monkey类:持久化类,代表猴子。
● MonkeyDAo. 类:封装了通过 Hibernate API来访问数据库,进行查询及 更新 Monkey对象的代码。不负责声明数据库事务。DAO(DataAccess Object) 表示数据访问对象。
● BusinessService 类:负责处理投票业务,通过 MonkeyDAO 类来查询及 更新 Monkey对象,数据库事务的声明由 BusinessService类来完成。 SessionFactory对象是重量级对象,在一个Java应用中,对于一个数据库存储