spring 与hibernate Annotation配置(dao)

(1)BaseDao.java

import java.io.Serializable;
import java.sql.SQLException;
import java.util.Collection;
import java.util.List;
import javax.annotation.PostConstruct;
import javax.servlet.http.HttpServletRequest;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.HibernateTemplate;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class BaseDao extends HibernateDaoSupport {

 private static final Log log = LogFactory.getLog(BaseDao.class);
 private SessionFactory mySessionFactory;
 
 public SessionFactory getMySessionFactory() {
  return mySessionFactory;
 }
 @Autowired
 public void setMySessionFactory(SessionFactory mySessionFactory) {
  this.mySessionFactory = mySessionFactory;
 }
 
 @PostConstruct  
 private void setSuperSessionFactory(){//BaseDao被初始化里执行这个方法
  super.setSessionFactory(mySessionFactory);
 }

 /* @Resource(name="sessionFactory")
 private void setSuperSessionFactory(SessionFactory sessionFactory){
  this.setSessionFactory(sessionFactory);
 }
 */
 public boolean createObj(Object o) {
  boolean rtn = false;
  log.debug("开始保存实例:"+o.getClass().getName());
  try{
   HibernateTemplate ht = this.getHibernateTemplate();
   ht.save(o);
   ht.flush();
   rtn = true;
   log.debug("保存实例["+o.getClass().getName()+"]成功!");
  }catch(HibernateException e){
   rtn = false;
   log.error("保存"+o.getClass().getName()+"实例到数据库失败!",e);
  }
  return rtn;
 }

}

 

(2)CompanyDao.java

 

import org.hibernate.Session;
import org.springframework.stereotype.Repository;
import com.entry.TCompanyInfo;

 

@Repository("companyDao")
public class CompanyDao extends BaseDao {

 

}

你可能感兴趣的:(java,DAO,spring,Hibernate,orm)