Hibernate 中使用 HibernateTemplate的三种方法

转载 2012年03月21日 20:20:17

转自:http://www.oseye.net/kb/show/1376 做个记录收藏而已,感觉文章有出入,有待发掘

在我们的项目中,经常要从HibernateDaoSupport继承然后使用他的HibernateTemplate给我们封装好的方法。

我们以用户模块的持久层UserDao这个类的addUser(User user)方法为例:

第一种方法:userDao extends HibernateDaoSupport:(不推荐使用)

我们知道继承这个类,必须给他注入一个HibernateTemplate的对象,或者是SessionFactory对象但是 HibernateDaoSupport这个类的所有的方法都是final的,无法重写他的 setSessionFactory(SessionFactory sessionFactory)方法来注入,只能使用xml的方式来生成userDao这个对象的时候,使用<property id ="xxx" ref="xxx">来注入这个对象,但是如果这样,如果我们的Dao层的类特别多,都需要在xml文件中进行配置我们的xml配置文件就会十分的庞大 臃肿

第二种方法:

public class BaseDao extends HibernateDaoSupport {   
       
    @Resource(name="sessionFactory")   
    public void setSF(SessionFactory sessionFactory) {   
        super.setSessionFactory(sessionFactory);   
    }   
 }  

我们抽取出来一个Dao层的基类然后让这个类继承HibernateDaoSupport,然后我们自己随便写个方法参数是 SessionFactory,然后再方法上面加入@Resource注解,把SessionFactory对象,注入到这个方法中来然后再这个方法中调用父类中也就是HibernateDaoSupport 中的setSessionFactory(SessionFactory sessionFactory)方法把sessionFactory给他注入进去。默认情况下@Resource注解是按照名称来注入的,但是这个时候我们自己写的这个方法无法与spring配置文件中的id名称匹配起来就会按照类型进行注入了。然后我们的UserDao类继承我们的BaseDao类就可以使用HibernateTemlate中的方法了。

第三种方法:

public class BaseDao extends HibernateDaoSupport {
	private HibernateTemplate hibernateTemplate;
	@Resource
	public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
		this.hibernateTemplate = hibernateTemplate;
	}
}

还是抽取出一个BaseDao的类,然后我不继承HibernateDaoSupport这个类了。我在这个类中,定义一个 HibernateTemplate类型的属性,然后把这个类注入进来,UserDao等这些持久化类仍然是从这个类继承,就可以使用 HibernateTemplate中的方法了。

                

hibernateTemplate常用方法总结

一、find(String queryString);      示例:this.getHibernateTemplate().find("from bean.User");   ...
  • qq545923664
  • qq545923664
  • 2013年12月26日 14:05
  • 6180

Spring和Hibernate集成的HibernateTemplate的一些常用方法总结

1:get/load存取单条数据      public Teacher getTeacherById(Long id) { return (Teacher)t...
  • woshisap
  • woshisap
  • 2011年11月30日 10:54
  • 20558

HibernateTemplate常用方法详解

本文转载自:http://blog.csdn.net/woshisap/article/details/7026076 1:get/load存取单条数据      [html] view ...
  • zjkC050818
  • zjkC050818
  • 2017年05月19日 14:49
  • 1969

hibernateTemplate的方法明细及实例

1.管理SessionFactory 使用Spring整合Hibernate时我们不需要hibernate.cfg.xml文件。首先,在applicationContext.xml中配置数据源(d...
  • xingfuweiyu
  • xingfuweiyu
  • 2010年12月07日 16:54
  • 328

HibernateTemplate的常用方法简介

void delete(Object entity):删除指定持久化实例         deleteAll(Collectionentities):删除集合内全部持久化类实例         ...
  • u012383839
  • u012383839
  • 2015年04月07日 14:22
  • 365

HibernateTemplate 的常见用法

HibernateTemplate 的常见用法 转载自:http://www.open-open.com/lib/view/open1352621814793.html HibernateTemp...
  • demi_amos
  • demi_amos
  • 2016年09月19日 20:23
  • 1399

HibernateTemplate使用方法

HibernateTemplate使用方法(转)  (2014-08-22 09:54:39) 转载▼ 标签:  it 分类: 编程爱好者 ...
  • yuancl
  • yuancl
  • 2017年05月11日 15:24
  • 359

hibernateTemplate的常用方法

  • 2013年04月13日 12:16
  • 3KB
  • 下载

Spring整合hibernate(2)之基于HibernateTemplate的整合

Spring整合hibernate(2)之基于HibernateTemplate的整合 Spring集成hibernate3和4有一定的区别,目前基本都在使用3,所以此处内容以3为基础; 使用...
  • rzg813
  • rzg813
  • 2014年10月12日 17:37
  • 1798

hibernate之template find方法使用

一、find(String queryString); 示例:this.getHibernateTemplate().find("from bean.User"); 返回所有User对...
  • solobear
  • solobear
  • 2014年08月10日 01:45
  • 600
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Hibernate 中使用 HibernateTemplate的三种方法
举报原因:
原因补充:

(最多只允许输入30个字)