欢迎来到天天文库
浏览记录
ID:33636250
大小:109.50 KB
页数:9页
时间:2019-02-27
《使用spring整合hibernate和struts》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、使用Spring整合Hibernate和Struts21、Spring和Hibernate的整合(DAO层整合)1.1由Spring的IoC容器创建sessionFactory注意:Øid名称任意,但
2、是建议为sessionFactory。Øproperty的name属性值固定Ø不再使用HibernateSessionFactory类获取SessionFactory,而是从Spring的Ioc容器获取1.2由Spring的IoC容器创建DAO
3、bean>DAO实现类的开发有两种方法。无论哪种方法,都需要在配置文件中对DAO进行以上相同配置方法1:使用原生API实现DaopublicclassStudentDaoImplimplementsStudentDao{privateSessionFactorysessionFactory;publicvoidsetSessionFactory(SessionFactorysessionFactory){this.sessionFactory=sessionFactory;}publicListselectAll(){//Sessionsession=Hibernate
4、SessionFactory.getSession();Sessionsession=this.sessionFactory.openSession();Queryquery=session.createQuery("fromStudent");ListstuList=query.list();session.close();returnstuList;}}优点:在开发中不会使用到Spirng的任何类,就像没有Spring一样,便于日后移植,脱离Spring。缺点:无法利用Spring封装Hibernate时提供的额外功能,例如开发人员还必须进行异常处理。方法2:使用S
5、pring的HibernateDaoSupport类实现Dao。publicclassStudentDaoImplextendsHibernateDaoSupportimplementsStudentDao{publicListselectAll(){ListstuList=this.getHibernateTemplate().find("fromStudent");returnstuList;}publicvoidinsertStu(Studentstudent){this.getHibernateTemplate().save(
6、student);}publicStudentselectStu(intid){Studentstu=(Student)this.getHibernateTemplate().get(Student.class,id);returnstu;}publicvoidupdateStu(Studentstudent){this.getHibernateTemplate().update(student);}publicvoiddeleteStu(intid){this.getHibernateTemplate().delete(this.getHibernateTemplat
7、e().get(Student.class,id));}}缺点:在开发中会使用到Spring的类,对Spring产生依赖,不利于日后移植,脱离Spring。优点:可以利用Spring封装Hibernate时提供的额外功能,例如开发人员无需进行异常处理,无需开启和关闭Session,大大减少了编码量。。深入HibernateTemplate:Ø方法和Sessioin的许多方法相同,底层调用Session的相应方法ØHibernateTemplate类的核心方法是doExecute(),在其中提供了静态操作的实现(模板),比如获取sessio
此文档下载收益归作者所有