读书人

HbernateTemplate种使用详解

发布时间: 2012-11-04 10:42:42 作者: rapoo

HbernateTemplate类使用详解
如何使用HbernateTemplate
HibernateTemplate提供持久层访问模板化,使用HibernateTemplate无须实现特定接口,它只需要提供一个SessionFactory的引用,就可执行持久化操作。SessionFactoyr对象可通过构造参数传入,或通过设值方式传入。如下:

public class PersonDaoImpl implements PersonDao{    //私有实例变量保存SessionFactory         private SessionFactory sessionFactory;         //依赖注入必须的setter方法    public void setSessionFactory(SessionFactory sessionFactory)         {           this.sessionFactory = sessionFactory;    }         /**          * 通过人名查找所有匹配该名的Person实例          * @param name 匹配的人名          * @return 匹配该任命的全部Person集合          */    public List findPersonsByName(final String name)         {           //创建HibernateTemplate实例                   HibernateTemplate hibernateTemplate =                         new HibernateTemplate(this.sessionFactory);           //返回HibernateTemplate的execute的结果                   return (List) hibernateTemplate.execute(                //创建匿名内部类                   new HibernateCallback()                   {              public Object doInHibernate(Session session) throws HibernateException                            {                   //使用条件查询的方法返回                                     List result = session.createCriteria(Person.class)                                                                     .add(Restrictions.like(“name”, name+”%”)                                                                           .list();                                    return result;                     }                });    }}

注意:方法doInHibernate方法内可以访问Session,该Session对象是绑定到该线程的Session实例。该方法内的持久层操作,与不使用Spring时的持久层操作完全相同。这保证对于复杂的持久层访问,依然可以使用Hibernate的访问方式。

读书人网 >编程

热点推荐