Heim  >  Artikel  >  Datenbank  >  SSH2 DAO注入sessionfactory的方式汇总

SSH2 DAO注入sessionfactory的方式汇总

WBOY
WBOYOriginal
2016-06-07 15:00:16922Durchsuche

方法一:在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

                   

       

          

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Sublime Text 2 安装插件方法Nächster Artikel:抓包工具fiddler2