您好,欢迎访问一九零五行业门户网

SSH2 DAO注入sessionfactory的方式汇总

方法一:在spring配置文件中,为继承hibernatedaosupport的dao注入sessionfactory spring为hibernate的dao提供工具类:hibernatedaosupport。该类主要提供如下两个方法,方便dao的实现: public final hibernatetemplate gethibernatetemplate() public fina
方法一:在spring配置文件中,为继承hibernatedaosupport的dao注入sessionfactory
spring为hibernate的dao提供工具类:hibernatedaosupport。该类主要提供如下两个方法,方便dao的实现:    public final hibernatetemplate gethibernatetemplate()
 public final void setsessionfactory(sessionfactory sessionfactory)
其中,setsessionfactory方法用来接收spring的applicationcontext的依赖注入,可接收配置在spring的sessionfactory实例,gethibernatetemplate方法则用来根据刚才的sessionfactory产生session,最后生成hibernatetemplate来完成数据库访问。
典型的继承hibernatedaosupport的dao实现的代码如下:
public class persondaohibernate extends hibernatedaosupport implements persondao
{
    //采用log4j来完成调试时的日志功能
private static log log = logfactory.getlog(newsdaohibernate.class);
         //返回全部的人的实例
    public list getpersons()
         {       
                   //通过hibernatetemplate的find方法返回person的全部实例
           return gethibernatetemplate().find(from person);
    }
         /**
          * 根据主键返回特定实例
          * @ return 特定主键对应的person实例
          * @ param 主键值
    public news getperson(int personid)
         {
           return (person)gethibernatetemplate().get(person.class, new integer(personid));
    }
         /**
          * @ person 需要保存的person实例
          */
    public void saveperson(person person)
         {                
                   gethibernatetemplate().saveorupdate(person);
    }
         /**
          * @ param personid 需要删除person实例的主键
          * /
    public void removeperson(int personid)
         {
                   //先加载特定实例
           object p = gethibernatetemplate().load(person.class, new integer(personid));
                   //删除特定实例
           gethibernatetemplate().delete(p);
    }
}
可以与前面的persondaohibernate对比,会发现代码量大大减少。事实上,dao的实现依然借助于hibernatetemplate的模板访问方式,只是,hibernatedaosupport将依赖注入sessionfactory的工作已经完成,获取hibernatetemplate的工作也已完成。该dao的配置必须依赖于sessionfactory,具体的配置如下:
/p>
    http://www.springframework.org/dtd/spring-beans.dtd>
com.mysql.jdbc.driver
jdbc:mysql://wonder:3306/j2ee
root
pass
lee/person.hbm.xml
org.hibernate.dialect.mysqldialect
update
其它类似信息

推荐信息