Spring整合hibernate:HibernateTemplate和HibernateDaoSupport实现数据库操作

来源:互联网 发布:如何关掉nginx服务 编辑:程序博客网 时间:2024/05/01 11:35

HibernateTemplate:(主要采用spring注入)

其中实现类的配置如下:

@Component("userDAOImpl")public class UserDAOImpl implements UserDAO {private HibernateTemplate hibernateTemplate;public HibernateTemplate getHibernateTemplate() {return hibernateTemplate;}@Resourcepublic void setHibernateTemplate(HibernateTemplate hibernateTemplate) {this.hibernateTemplate = hibernateTemplate;}public void save(People people) {hibernateTemplate.save(people);}public void delete(People people) {System.out.println("user delete!");}}


其中配置文件:(sessionFactory可以参考上一章配置)

<bean id="hibernateTemplate" class="org.springframework.orm.hibernate3.HibernateTemplate"><property name="sessionFactory" ref="sessionFactory"></property></bean>

 

 HibernateDaoSupport:注意继承不能再用annotation注入了!!!HibernateDaoSupport所有的set方法都是final类型,不能被重写,只能用xml配置注入!!!

其中实现类的配置如下:

//@Component("userDAOImpl")(HibernateDaoSupport所有的set方法都是final类型,只能用xml配置注入!!!)public class UserDAOImpl extends HibernateDaoSupport implements UserDAO {public void save(People people) {this.getHibernateTemplate().save(people);}public void delete(People people) {System.out.println("user delete!");}}

其中配置文件:(sessionFactory可以参考上一章配置):

<bean id="userDAOImpl" class="com.bjsxt.dao.impl.UserDAOImpl"><property name="sessionFactory" ref="sessionFactory"></property></bean>

1、如果非要使用annotation注入的话可以采用下面的方法:

@Resource(name = "sessionFactory")public void setBaseDaoSessionFactory(SessionFactory sessionFactory) {super.setSessionFactory(sessionFactory);}

2、如果有很多的实现类的话,可以采用抽象类的方法,该抽象类继承HibernateDaoSupport,把抽象类配置到xml中,只要让继承该抽象类,其下面的所有子类都不需要在xml重新配置,可以减少配置量

<bean id="abstractDAO" class="com.bjsxt.dao.impl.abstractDAO"><property name="sessionFactory" ref="sessionFactory"></property></bean>




 

0 0
原创粉丝点击