通用的增刪該查工具類 可在dao層 new一個(gè)
CommonCrudUtil(本類)實(shí)例 實(shí)現(xiàn)對數(shù)據(jù)的增刪改查
package com.XXXXX.util;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;
import org.hibernate.*;
/**
* 通用增刪改查工具類
* @author 王代軍
* @since Dec 19,2011
* @version 1.0
*/
@SuppressWarnings("unchecked")
public class CommonCrudUtil<T> {
/**
* 添加功能
* @param obj 要保存的對象
*/
public boolean create(Object obj){
Session session=HibernateSessionFactory.getSession();
Transaction tx=null;
boolean flag=false;
try{
tx=session.beginTransaction();
session.persist(obj);
tx.commit();
flag=true;
}catch(Exception e){
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
}finally{
session.close();
}
return flag;
}
/**
* 查詢功能
* @param clazz 要查詢對象的類型 obj 要查詢的對象的 可序列化的字段 (本設(shè)計(jì)指主鍵 id)
*/
public Object retrieve(Class clazz,Object obj){
Session session=HibernateSessionFactory.getSession();
Transaction tx=null;
try{
tx=session.beginTransaction();
Object object=session.get(clazz,(Serializable) obj);
tx.commit();
return object;
}catch(Exception e){
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
return null;
}finally{
session.close();
}
}
/**
* 查詢?nèi)抗δ?br /> * @param clazz 要查詢的對象的類型
*/
public List<T> retrieve(Class clazz){
Session session=HibernateSessionFactory.getSession();
List<T> list=new ArrayList<T>();
Transaction tx=null;
try{
tx=session.beginTransaction();
Criteria cr=session.createCriteria(clazz);
list=cr.list();
tx.commit();
return list;
}catch(Exception e){
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
return null;
}finally{
session.close();
}
}
/**
* 更新功能
* @param obj 要更新的對象
*/
public boolean update(Object obj){
Session session=HibernateSessionFactory.getSession();
boolean flag=false;
Transaction tx=null;
try{
tx=session.beginTransaction();
session.update(obj);
tx.commit();
flag=true;
}catch(Exception e){
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
}finally{
session.close();
}
return flag;
}
/**
* 刪除功能
* @param clazz 要刪除的對象的類型 obj 要刪除的對象的 唯一標(biāo)識(可序列化)字段 (指主鍵 id)
*/
public boolean delete(Class clazz,Object obj){
Session session=HibernateSessionFactory.getSession();
Transaction tx=null;
boolean flag=false;
try{
tx=session.beginTransaction();
Object object=session.get(clazz,(Serializable) obj);
session.delete(object);
tx.commit();
flag=true;
}catch(Exception e){
e.printStackTrace();
if(tx!=null){
tx.rollback();
}
}finally{
session.close();
}
return flag;
}
}
調(diào)用實(shí)現(xiàn) dao層的實(shí)現(xiàn)類調(diào)用
CommonCrudUtil 的方法實(shí)現(xiàn)增刪改查
import java.util.Date;
import java.util.List;
import org.hibernate.Query;
import com.zhongyou.bean.IDCard;
import com.zhongyou.util.CommonCrudUtil;
public class IDCardDaoImpl implements IDCardDaoIf {
CommonCrudUtil crud=new CommonCrudUtil<IDCard>();
public int addInformation(IDCard card) {
IDCard card=new IDCard();
card.setId(16);
card.setName("xiaoxiao");
card.setAddress("xiaoxiao");
card.setBirthday(new Date());
card.setNumber("29472398734");
card.setSex("男");
crud.create(card);//增加.......
}
。。。。。。查詢。。。。。
crud.retrieve(IDCard.class,3);
。。。。。。查詢?nèi)俊!!!!?br />
crud.retrieve(IDCard.class);
。。。。。。修改。。。。
crud.update(card);
。。。。。。刪除。。。。
crud.delete(IDCard.class,3);
。。。。。。。。。
寫的簡陋些 只是些想法可借鑒而已 同志們 可以自己完善。。。。
posted on 2011-12-26 13:22
Tomas 閱讀(2006)
評論(1) 編輯 收藏