HibernateCallback总结
HibernateTemplate提供了非常多的常用方法来 完成数据库的基本操作,使得持久层访问模板化 。只要创建HibernateTemplate实例后,注入一 个SessionFactory的引用就可以了,而无需手动 创建sessionFactory,从而可以更加智能的管理 Hibernate的Session,避免了对于try/catch的 大量使用。
HibernateTemplate操作数据库的基本方法;
对于Hibernate的复杂用法HibernateCallBack, HibernateTemplate也提供了一种更加灵活的方 式来操作数据库。通过这种方式可以完全使用 Hibernate的操作方式。
HibernateTemplate的灵活使用方式是通过如下方式完成的:
这三个方法都需要HibernateCallBack实例, HibernateCallBack实例可以在任何有效的数据 库访问中使用。开发者通过HibernateCallBack 可以完全使用Hibernate灵活的方式来访问数据 库,解决Spring封装Hibernate后导致的灵活性 不足的缺陷。
HibernateCallback是一个接口,该接口只有一 个方法doInHibernate(org.hibernate.Session session), 该方法只有一个参数Session。
通常,程序中采用实现HibernateCallback的匿 名内部类来获取HibernateCallback的实例, 方 法doInHibernate的方法体就是Spring执行的持 久化操作。
如下为一个HibernateCallBack实现的分页查询工具类:
/**
* HibernateCallBack实现分页查询
* @author lmb
*
*/
import java.sql.SQLException;
import java.util.List;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
public class HibernateCall