Hibernate常用的BaseDao

package org.accp.house.dao.hbimpl;

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

import org.accp.house.dao.ICommonDao;
import org.accp.house.dao.IHibernateCallback;
import org.accp.house.hibernateutil.HibernateSessionFactory;
import org.hibernate.Session;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;

public class BaseDao implements ICommonDao {

/**保存一个临时对象[用户]*/
@Override
public void persist(Object obj) {
  // TODO Auto-generated method stub
  Session session = null;
  Transaction ts = null;
 
  try {
   session = HibernateSessionFactory.getSession();
   ts = session.beginTransaction();
  
   session.save(obj);
  
   ts.commit();
  } catch(Exception e){
   ts.rollback();
   throw new RuntimeException(e.getMessage());
  } finally {
   if (session!=null) session.close();
  }
 
}

@Override
public void remove(Object obj) {
  // TODO Auto-generated method stub
  Session session = null;
  Transaction ts = null;
 
  try {
   session = HibernateSessionFactory.getSession();
   ts = session.beginTransaction();
  
   session.delete(obj);
  
   ts.commit();
  } catch(Exception e){
   ts.rollback();
   throw new RuntimeException(e.getMessage());
  } finally {
   if (session!=null) session.close();
  }
}

@Override
public void update(Object obj) {
  // TODO Auto-generated method stub
  Session session = null;
  Transaction ts = null;
 
  try {
   session = HibernateSessionFactory.getSession();
   ts = session.beginTransaction();
  
   session.update(obj);
  
   ts.commit();
  } catch(Exception e){
   ts.rollback();
   throw new RuntimeException(e.getMessage());
  } finally {
   if (session!=null) session.close();
  }
 
}

public Object getObject(Class entityClass,Serializable oid){
  Session session = null;
  try {
   session = HibernateSessionFactory.getSession();
   return session.get(entityClass, oid);
  } catch (Exception e) {
   throw new RuntimeException(e.getMessage());
  } finally {
   if (session!=null) session.close();
  }
}

@Override
public List findAll(Class entityClass) {
  // TODO Auto-generated method stub
  Session session = null;
  try {
   session = HibernateSessionFactory.getSession();
   return session.createQuery("from "+entityClass.getName()).list();
  } catch (Exception e) {
   throw new RuntimeException(e.getMessage());
  } finally {
   if (session!=null) session.close();
  }
}

public Object execute(IHibernateCallback hibernateCallback){
  Session session = null;
  Transaction ts = null;
  Object result = null;
  try {
   session = HibernateSessionFactory.getSession();
   ts = session.beginTransaction();
  
   if (hibernateCallback!=null)
    result = hibernateCallback.doInHibernate(session);
  
   ts.commit();
  } catch(Exception e){
   ts.rollback();
   throw new RuntimeException(e.getMessage());
  } finally {
   if (session!=null) session.close();
  }
 
  return result;
}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值