学习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;
 }
 

}

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值