Chinaunix首页 | 论坛 | 博客
  • 博客访问: 731054
  • 博文数量: 178
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 1507
  • 用 户 组: 普通用户
  • 注册时间: 2014-04-27 23:20
文章分类

全部博文(178)

文章存档

2015年(58)

2014年(121)

我的朋友

分类: Java

2014-09-27 21:14:23

配置baseDao(hibernateTemplate)

当用 (struts2+hibernate+spring)开发的时候,想写个baseDao,同时继承该类的Dao类能使用hibernateTemplate,

1)在baseDao中注入hibernateTemplate属性。

手动注入hibernateTemplate属性。

baseDao.java代码如下:

import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;

// class created by wwei 2011-11-28 下午10:12:01

@Repository("baseHibernateDao")
public abstract class BaseHibernateDaoImpl implements BaseHibernateDao{

    private HibernateTemplate hibernateTemplate;
   
    public HibernateTemplate getHibernateTemplate() {
        return hibernateTemplate;
    }
    @Resource(name = "hibernateTemplate")
    public void setHibernateTemplate(HibernateTemplate hibernateTemplate) {
        this.hibernateTemplate = hibernateTemplate;
    }

    @SuppressWarnings("unchecked")
    public List findUser(String hql) throws Exception{
        try{
            return (List)this.getHibernateTemplate().find(hql);
        }catch(Exception e){
            logger.info(e);
            throw new Exception();
        }
    }
}


2) 继承HibernateDaoSupport类。

同时,还需要注入sessionFactory或者hibernateTemplate。

此处自定义增加了setSessionFactoryOverride方法。增加了findUser方法,实现自BaseHibernateDao接口。


import java.io.Serializable;
import java.util.List;

import javax.annotation.Resource;

import org.hibernate.SessionFactory;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import org.springframework.stereotype.Repository;

// class created by wwei 2011-11-28 下午10:12:01

@Repository("baseHibernateDao")
public abstract class BaseHibernateDaoImpl extends HibernateDaoSupport implements BaseHibernateDao{

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

    @SuppressWarnings("unchecked")
    public List findUser(String hql) throws Exception{
        try{
            return (List)this.getHibernateTemplate().find(hql);
        }catch(Exception e){
            logger.info(e);
            throw new Exception();
        }
    }
   
   
}

 spring.xml代码如下:显示代码:

    xmlns:xsi="" xmlns:aop=""
    xmlns:tx="" xmlns:context=""
    xsi:schemaLocation="

/spring-beans-2.5.xsd

/spring-tx-2.5.xsd

/spring-aop-2.5.xsd
    
   /spring-context-2.5.xsd
">
   
   
    
            class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
       
            classpath:jdbc.properties
       

   
   
            class="org.apache.commons.dbcp.BasicDataSource">
       
       
       
       
   

 
             class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">
       
       
       
           
                com.wykd.bean
           

       

       
       
           
               
                    org.hibernate.dialect.MySQLDialect
               

                true
                true
           

       

       
   

 
   
       
   

阅读(784) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~