以前用S2sh得时候,获得sessionfactory 得方式 都是通过 spring得配置文件中 声明 例如
<bean name="userinfodao" class="com.java5.bank.m.db.daoimpl.UserinfoDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
然后 我再 该类中
public class UserinfoDAOImpl implements UserinfoDAO{ private SessionFactory sessionFactory; public SessionFactory getSessionFactory() {
return sessionFactory;
} public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
完成注入。但是今天再网上看到帖子,说是 直接注入sessionfactory 需要继承hibernatedaosuppory类··,但是我一直没有继承过,也实现功能了···真心求教··
<bean name="userinfodao" class="com.java5.bank.m.db.daoimpl.UserinfoDAOImpl">
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>
然后 我再 该类中
public class UserinfoDAOImpl implements UserinfoDAO{ private SessionFactory sessionFactory; public SessionFactory getSessionFactory() {
return sessionFactory;
} public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
完成注入。但是今天再网上看到帖子,说是 直接注入sessionfactory 需要继承hibernatedaosuppory类··,但是我一直没有继承过,也实现功能了···真心求教··
而dao继承hibernatedaosuppor后通过getHibernateTemplate()直接就能获得session,上面的步骤都在hibernatedaosupport里完成了,你只要在spring配置文件里配置SessionFactory就行了。
代码如下:
public class UserDAOImpl extends HibernateDaoSupport implements UserDAO{
public void save(Users transientInstance) {
log.debug("saving Users instance");
try {
getHibernateTemplate().save(transientInstance);
log.debug("save successful");
} catch (RuntimeException re) {
log.error("save failed", re);
}
}
………………
}