`
阅读更多

/**
*
*/

package zhenjw.base.hibernate.db.dao;

import java.util.Collection;
import java.util.List;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;

/**
* @author zhenjw
*
*/
public interface IBaseDao {

/**
* 获得数据库连接的Session
* @return
*/
public Session getSession();

/**
* 得到记录总数
* @param queryString
* @return
*/
public int getTotalCount(String queryString) ;
/**
* 得到记录总数
* @param queryString
* @return
*/
public int getTotalCountBySql(String queryString) ;

/**
* 得到记录总数
* @param queryString
* @param obj
* @return
*/
public int getTotalCount(String queryString,Object obj) ;
/**
* 得到记录总数
* @param queryString
* @param paramname
* @param paramvalue
* @return
*/
public int getTotalCount(String queryString,String[]paramname ,Object []paramvalue) ;
/**
* 得到Query
* @param queryString
* @return
*/
public Query getQuery(String queryString);
/**
* 得到Criteria
* @param clazz
* @return
*/
public Criteria getCriteria(Class clazz) ;

/**
* 增加记录
* @param entity
*/
public void create(Object entity);

/**
* 修改记录
* @param entity
*/
public void update(Object entity);

/**
* 删除记录
* @param entity
*/
public void delete(Object entity);

/**
* 删除数据
* @param clazz
* @param id
*/
public void delete(Class clazz,long id);

/**
* 批量删除数据
* @param clazz
* @param id
*/
public void batchDelete(Class clazz,long []id);

/**
* 删除表中的所有的记录
* @param clazz
*/
public void deleteAll(Class clazz) ;
/**
* 删除记录集中的所有的记录
* @param entities
*/
public void deleteAll(Collection entities) ;;

/**
* 通过主键查询记录
* @param clazz
* @param id
* @return
*/

public Object getByPk(Class clazz, Integer id);
/**
* 通过主键查询记录
* @param clazz
* @param id
* @return
*/
public Object getByPk(Class clazz, Long id);
/**
* 通过主键查询记录
* @param clazz
* @param id
* @return
*/
public Object getByPk(Class clazz, String id);
/**
* 通过关键字和值来进行查询
* @param clazz
* @param keyName
* @param keyValue
* @return 得到的Object是List
* @
*/
public Object loadByPk(Class clazz, String keyName, Object keyValue);

/**
* 查询记录
* @param queryString
* @return
*/
public List find(String queryString) ;

/**
* 查询记录
* @param queryString
* @param param
* @return
*/
public List find(String queryString, Object param) ;
/**
* 查询记录
* @param queryString
* @param name
* @param param
* @return
*/
public List findByNamedParam(String queryString ,String name,Object param);

/**
* 查询记录
* @param queryString
* @param params
* @return
*/
public List find(String queryString, Object[] params) ;
/**
* 得到表中的所有记录
* @param clazz
* @return
*/
public List loadAll(Class clazz) ;
/**
* 分页查询注意Object[]中不能包含有hibernate不能唯一确定的数据类型例如Date类型
* @param pageNo
* @param pageSize
* @param hql
* @param paramname
* @param paramvalue
* @return
*/
public List query(int pageNo,int pageSize,String queryString,String []paramname,Object []paramvalue);

/**
* 分页查询
* @param pageNo
* @param pageSize
* @param queryString
* @return
*/
public List query(int pageNo,int pageSize,String queryString  );
/**
* 分页查询
* @param pageNo
* @param pageSize
* @param queryString
* @param obj
* @return
*/
public List query(int pageNo,int pageSize,String queryString  ,Object obj);

}


下面是实现类


package zhenjw.base.hibernate.db.dao;

import java.util.Collection;
import java.util.Iterator;
import java.util.List;

import org.apache.log4j.Logger;
import org.hibernate.Criteria;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.criterion.Restrictions;

import zhenjw.hibernate.HibernateSessionFactory;



/**
* @author zhenjw
*
*
*/
public class BaseDao  implements IBaseDao {

private Logger logger = Logger.getLogger(this.getClass());

private String databeaseError=Messages.getString("BaseDao.databeaseError");

private SessionFactory sessionFactory;
/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#GetTotal(java.lang.String)
*/
public int getTotalCount(String queryString) {

// TODO Auto-generated method stub
logger.debug("getTotalCount() queryString=" + queryString);
int result = 0;
Session session = null;
try {
String strsql =this.getQueryTotalCountSqlString(queryString);
session = this.getSession();
Query query = session.createQuery(strsql);
List list = query.list();
if (list != null || list.size() > 1) {
result = ((Long) list.get(0)).intValue();
} else
result = 0;
} catch (Exception e) {

logger.debug(databeaseError, e);
throw new DaoException(databeaseError);

finally
{
this.closeSession(session);
}
return result;
}

/* (non-Javadoc)
* @see zhenjw.base.hibernate.db.dao.IBaseDao#getTotalCountBySql(java.lang.String)
*/
public int getTotalCountBySql(String queryString) {
// TODO Auto-generated method stub
logger.debug("getTotalCountBySql() queryString=" + queryString);
int result = 0;
Session session =null;
try {
String strsql =this.getQueryTotalCountSqlString(queryString);
session = this.getSession();
Query query = session.createSQLQuery(strsql);
List list = query.list();
if (list != null || list.size() > 1) {
result = ((Long) list.get(0)).intValue();
} else
result = 0;
} catch (Exception e) {

logger.debug(databeaseError, e);
throw new DaoException(databeaseError);

finally
{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernate.db.dao.IBaseDao#getTotalCount(java.lang.String,
*      java.lang.String[], java.lang.Object[])
*/
public int getTotalCount(String queryString, Object obj) {
// TODO Auto-generated method stub
logger.debug("getTotalCount(String,Object)  queryString=" + queryString + ""
+ obj.getClass().getName());

int result = 0;
Session session =null;
try {
String strsql =this.getQueryTotalCountSqlString(queryString);
session = this.getSession();
Query query = session.createQuery(strsql); 
List list = query.setProperties(obj).list();
if (list != null || list.size() > 1) {
result = ((Integer) list.get(0)).intValue();
} else
result = 0;

} catch (Exception e) {
String error=Messages.getString("BaseDao.getTotalCount.Error");
logger.debug(error, e);
throw new DaoException(error);
}finally
{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernate.db.dao.IBaseDao#getTotalCount(java.lang.String,
*      java.lang.String[], java.lang.Object[])
*/
public int getTotalCount(String queryString, String[] paramname, Object[] paramvalue) {
// TODO Auto-generated method stub
logger.debug("getTotalCount(String, String[], Object[]) queryString=" + queryString);
int result = 0;

String paramnameArray = "";
for (int i = 0; i < paramname.length; i++) {
if (i > 0)
paramnameArray += " , " + paramname[i];
else
paramnameArray = paramname[i];
}
logger.debug("String[] paramname=" + "{" + paramnameArray + "}");

String paramvalueArray = "";
for (int i = 0; i < paramname.length; i++) {
if (i > 0)
paramvalueArray += " , " + paramname[i];
else
paramvalueArray = paramname[i];
}
logger.debug("Object[] paramvalue=" + "{" + paramvalueArray + "}");

Session session =null;
try {

if (paramname.length != paramname.length) {
String arrayparamError=Messages.getString("BaseDao.getTotalCount.paramarrayError");
logger.debug(arrayparamError);
throw new DaoException(arrayparamError);
}
String strsql =this.getQueryTotalCountSqlString(queryString);
session = this.getSession();
Query query = session.createQuery(strsql);
for (int i = 0; i < paramname.length; i++) {

query.setParameter(paramname[i], paramvalue[i]);
}
List list = query.list();
if (list != null || list.size() > 1) {
result = ((Long) list.get(0)).intValue();
} else
result = 0;

} catch (Exception e) {

logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}finally
{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernate.db.dao.IBaseDao#queryHql(int, int,
*      java.lang.String, java.lang.String[], java.lang.Object[])
*/
public List query(int pageNo, int pageSize, String queryString, String[] paramname,
Object[] paramvalue) {
// TODO Auto-generated method stub
logger.debug("queryByHql(int, int, String, String[], Object[]) pageNo="
+ pageNo + ",pageSize=" + pageSize + " ,queryString=" + queryString);
List result = null;

String paramnameArray = "";
for (int i = 0; i < paramname.length; i++) {
if (i > 0)
paramnameArray += " , " + paramname[i];
else
paramnameArray = paramname[i];
}
logger.debug("String[] paramname=" + "{" + paramnameArray + "}");

String paramvalueArray = "";
for (int i = 0; i < paramname.length; i++) {
if (i > 0)
paramvalueArray += " , " + paramname[i];
else
paramvalueArray = paramname[i];
}
logger.debug("Object[] paramvalue=" + "{" + paramvalueArray + "}");

Session session = null;
try {
if (paramname.length != paramname.length) {
String paramarrayError=Messages.getString("BaseDao.query.paramarrayError");
logger.debug(paramarrayError);
throw new DaoException(paramarrayError);
}
session = this.getSession();

Query query = session.createQuery(queryString);
for (int i = 0; i < paramname.length; i++) {

query.setParameter(paramname[i], paramvalue[i]);
}
if (pageNo > 0 && pageSize > 0) {

query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
}

List list = query.list();
} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}
finally
{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernate.db.dao.IBaseDao#query(int, int,
*      java.lang.String, java.lang.Object)
*/
public List query(int pageNo, int pageSize, String queryString, Object obj) {
// TODO Auto-generated method stub

logger.debug("query(int, int, String, Object) pageNo=" + pageNo
+ ",pageSize=" + pageSize + "queryString  ,obj"
+ obj.getClass().getName());
List result = null;
Session session =null;
try {
session = this.getSession();
Query query = session.createQuery(queryString);
query.setProperties(obj);
if (pageNo > 0 && pageSize > 0) {
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
}
result = query.list();
} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}finally
{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernate.db.dao.IBaseDao#query(int, int,
*      java.lang.String)
*/
public List query(int pageNo, int pageSize, String queryString) {
// TODO Auto-generated method stub
logger.debug("query(int, int, String) pageNo="+pageNo+",pageSize="+pageSize+" ,queryString="+queryString);

List result = null;
Session session=null;
try {
session = this.getSession();
Query query = session.createQuery(queryString);
if (pageNo > 0 && pageSize > 0) {
query.setFirstResult((pageNo - 1) * pageSize);
query.setMaxResults(pageSize);
}
List list = query.list();
} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}finally
{
this.closeSession(session);
}
return result;

}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#create(java.lang.Object)
*/
public void create(Object entity) {

logger.debug("create(Object) "+entity.getClass().getName());

// TODO Auto-generated method stub
/**
try {

super.getHibernateTemplate().save(entity);
logger.debug("保存" + entity.getClass().getName() + " 的实例到数据库成功!");

} catch (Exception e) {
String error=Messages.getString("BaseDao.create.saveError");
logger.debug("保存" + entity.getClass().getName() + " 的实例到数据库 ,"+error, e);
throw new DaoException(error);
}
**/
Session session=null;
Transaction tr=null;
try {
session=this.getSession();
tr=session.beginTransaction();
session.save(entity);
tr.commit();
//super.getHibernateTemplate().save(entity);
logger.debug("保存" + entity.getClass().getName() + " 的实例到数据库成功!");

} catch (Exception e) {
if(tr!=null)
tr.rollback();
String error=Messages.getString("BaseDao.create.saveError");
logger.debug("保存" + entity.getClass().getName() + " 的实例到数据库 ,"+error, e);
throw new DaoException(error);
}
finally
{
this.closeSession(session);

}

}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#delete(java.lang.Object)
*/
public void delete(Object entity) {
logger.debug("delete(Object) entity.class="+entity.getClass().getName());

// TODO Auto-generated method stub
/**
try {

super.getHibernateTemplate().delete(entity);

} catch (Exception e) {
String Error=Messages.getString("BaseDao.delete.Error");

logger.debug(Error+" Class="+entity.getClass().getName(),
e);
throw new DaoException(Error);
}
**/
Session session=null;
Transaction tr=null;
try {

session=this.getSession();
tr=session.getTransaction();
tr.begin();
session.delete(entity);
tr.commit();

} catch (Exception e) {
if(tr!=null)
tr.rollback();
String Error=Messages.getString("BaseDao.delete.Error");

logger.debug(Error+" Class="+entity.getClass().getName(),
e);
throw new DaoException(Error);
}
finally
{
   this.closeSession(session);
}

}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#deleteAll(java.lang.Class)
*/
public void deleteAll(Class clazz) {
logger.debug("deleteAll(Class) ClassName="+clazz.getName());

// TODO Auto-generated method stub
Session session=null;
Transaction tr=null;

try {

//List result = super.getHibernateTemplate().loadAll(clazz);
//super.getHibernateTemplate().deleteAll(result);
session=this.getSession();
tr=session.beginTransaction();
Query query=session.createQuery(" delete   from "+clazz.getName());
query.executeUpdate();
tr.commit();
} catch (Exception e) {
if(tr!=null)
tr.rollback();
String Error=Messages.getString("BaseDao.delete.Error");
logger.debug("从数据库中删除" + clazz.getName() + "的所有实例失败!", e);
throw new DaoException(Error);
}finally
{
this.closeSession(session);
}

}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#deleteAll(java.util.Collection)
*/
public void deleteAll(Collection entities) {

// TODO Auto-generated method stub
Session session=null;
Transaction tr=null;
try {
session=this.getSession();
tr=session.beginTransaction();
Iterator ite=entities.iterator();

while(ite.hasNext())
session.delete(ite.next());
//super.getHibernateTemplate().deleteAll(entities);
tr.commit();

} catch (Exception e) {
if(tr!=null)
tr.rollback();
String error=Messages.getString("BaseDao.deleteAll.Error");
logger.debug(error, e);
throw new DaoException(error);
}finally
{
this.closeSession(session);
}
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#find(java.lang.String)
*/
public List find(String queryString) {

// TODO Auto-generated method stub
List result = null;
logger.debug("find(String) queryString="+queryString);
Session session=null;
try {
//result = super.getHibernateTemplate().find(queryString);
session=this.getSession();
Query query=session.createQuery(queryString);
result=query.list();

} catch (Exception e) {
logger.debug("执行数据库中查询时失败,语句为:" + queryString, e);
throw new DaoException(databeaseError);
}finally{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#find(java.lang.String,
*      java.lang.Object)
*/
public List find(String queryString, Object param) {

// TODO Auto-generated method stub
logger.debug("find(String, Object) queryString=" + queryString
+ " ,param=" + param);

List result = null;
Session session=null;
try {

session=this.getSession();
Query query=session.createQuery(queryString);
query.setParameter(0, param);
result=query.list();

//result = super.getHibernateTemplate().find(queryString, param);

} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);

}
finally
{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernate.db.dao.IBaseDao#findByNamedParam(java.lang.String,
*      java.lang.String, java.lang.Object)
*/
public List findByNamedParam(String queryString, String name, Object param) {
// TODO Auto-generated method stub
logger.debug("findByNamedParam(String, String, Object) queryString="
+ queryString + "name=" + name + " ,param=" + param);

List result = null;
Session session=null;
try {
session=this.getSession();
Query query=session.createQuery(queryString);
query.setParameter(name, param);
result=query.list();

//result = super.getHibernateTemplate().findByNamedParam(queryString,
// name, param);

} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);

}finally
{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#find(java.lang.String,
*      java.lang.Object[])
*/
public List find(String queryString, Object[] params) {

// TODO Auto-generated method stub
StringBuffer paramString = new StringBuffer("");
for (int i = 0; i < params.length; i++) {
paramString.append(params[i]);
paramString.append(" [] ");
}
logger.debug("find(String, Object[]) queryString=" + queryString
+ ",params : " + paramString);
List result = null;
Session session=null;
try {
session=this.getSession();
Query query=session.createQuery(queryString);
for(int i=0;i<params.length;i++)
{
query.setParameter(i, params[i]);
}
result=query.list();
//result = super.getHibernateTemplate().find(queryString, params);
} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}
finally{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#getByPk(java.lang.Class,
*      java.lang.Integer)
*/
public Object getByPk(Class clazz, Integer id) {

// TODO Auto-generated method stub
logger.debug("getByPk(Class, Integer) class="+clazz.getName()+"  ID="+id);
Object result = null;
Session session=null;
try {
session=this.getSession();
result=session.get(clazz, id);
//result = (Object) super.getHibernateTemplate().get(clazz, id);

} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}finally
{
this.closeSession(session);
}

return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#getByPk(java.lang.Class,
*      java.lang.Long)
*/
public Object getByPk(Class clazz, Long id) {

// TODO Auto-generated method stub
logger.debug("getByPk(Class, Long) Class="+clazz.getName()+",id="+id);
Object result = null;
Session session=null;
try {
session=this.getSession();
result =session.get(clazz,id);
//(Object) super.getHibernateTemplate().get(clazz, id);

} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}finally
{
this.closeSession(session);
}

return result;

}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#getByPk(java.lang.Class,
*      java.lang.String)
*/
public Object getByPk(Class clazz, String id) {

// TODO Auto-generated method stub
logger.debug("getByPk(Class, String) Class="+clazz.getName()+",id="+id);
Object result = null;
Session session=null;
try {

session=this.getSession();
result =session.get(clazz,id);
//result = (Object) super.getHibernateTemplate().get(clazz, id);

} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}finally
{
this.closeSession(session);
}

return result;
}


public List loadAll(Class clazz) {

// TODO Auto-generated method stub
logger.debug(" loadAll(Class) Class="+clazz.getName());
List result = null;
Session session=null;
try {
session=this.getSession();
result=session.createCriteria(clazz).list();

//result = super.getHibernateTemplate().loadAll(clazz);
} catch (Exception e) {
//logger.debug(" 加载  " + clazz.getName() + " 的所有实例时失败", e);
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}
finally
{
this.closeSession(session);
}

return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#loadByPk(java.lang.Class,
*      java.lang.String, java.lang.Object)
*/
public Object loadByPk(Class clazz, String keyName, Object keyValue) {

// TODO Auto-generated method stub
Object result = null;
String query = "from " + clazz.getName() + "  where " + keyName + "=? ";
logger.debug("loadByPk(Class, String, Object) queryString="+query+"  ,keyValue="+keyValue);
Session session=null;
try {

session=this.getSession();
result=session.createCriteria(clazz).add(Restrictions.eq(keyName, keyValue )).list();
  
} catch (Exception e) {
logger.debug(databeaseError, e);
throw new DaoException(databeaseError);
}finally
{
this.closeSession(session);
}
return result;
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#getSession()
*/
public Session getSession() {

// TODO Auto-generated method stub

return HibernateSessionFactory.getSession();
//return getHibernateTemplate().get
//return SessionFactoryUtils.getSession(getSessionFactory(), true);
//return this.getSession();
}

/*
* (non-Javadoc)
*
* @see zhenjw.hibernage.db.dao.IBaseDao#update(java.lang.Object)
*/
public void update(Object entity) {

// TODO Auto-generated method stub
logger.debug("update(Object) entity.class="+entity.getClass().getName());
Session session=null;
Transaction tr=null;
try {
session=this.getSession();
tr=session.beginTransaction();
session.update(entity);
tr.commit();
//super.getHibernateTemplate().update(entity);

} catch (Exception e) {
if(tr!=null)
tr.rollback();
String Error=Messages.getString("BaseDao.update.Error");
logger.debug(Error,e);
throw new DaoException(Error);
}
finally
{
this.closeSession(session);
}
}

/* (non-Javadoc)
* @see zhenjw.hibernate.db.dao.IBaseDao#getCriteria(java.lang.Class)
*/
public Criteria getCriteria(Class clazz) {
// TODO Auto-generated method stub
logger.debug("getCriteria(Class) Class.name="+clazz.getName());

Criteria result=null;
Session session=null;
try
{
session=this.getSession();
result=session.createCriteria(clazz);
}catch(Exception e)
{
logger.debug(" 根据 class : "+clazz.getName()+" 得到 Criteria 时失败");
logger.debug(databeaseError,e);
throw new DaoException(databeaseError);
}finally{
this.closeSession(session);
}
return result;
}

/* (non-Javadoc)
* @see zhenjw.hibernate.db.dao.IBaseDao#getQuery(java.lang.String)
*/
public Query getQuery(String queryString) {
// TODO Auto-generated method stub
logger.debug("getQuery(String)queryString="+queryString);
Query result=null;
Session session=null;
try
{
session=this.getSession();
result=session.createQuery(queryString);
}catch(Exception e)
{
logger.debug(" 根据  "+queryString+" 得到 Query 时失败");
logger.debug("getQuery(String) "+databeaseError,e);
throw new DaoException(databeaseError);
}
finally
{
this.closeSession(session);
}
return result;
}

private String getQueryTotalCountSqlString(String queryString)
{

int form_index = queryString.indexOf("from ");
int orderby_index = queryString.indexOf(" order by ");
if (form_index < 0) {
throw new DaoException(Messages.getString("BaseDao.getTotalCount.notFromkeyword"));
}
String strsql = " select count(*) ";
if (orderby_index > -1) {
strsql = strsql + queryString.substring(form_index, orderby_index);

} else {
strsql = strsql + queryString;
}

return strsql;
}

private void closeSession(Session session)
{

if(session!=null&&session.isOpen())
session.close();
session=null;
}



/* (non-Javadoc)
* @see zhenjw.base.hibernate.db.dao.IBaseDao#delete(java.lang.Class, long)
*/
public void delete(Class clazz, long id) {
// TODO Auto-generated method stub
logger.debug("ClassName="+clazz.getName()+"  ,id="+id);
try{

Object entity=this.getByPk(clazz, id);
if(entity!=null)
this.delete(entity);
else
logger.debug(clazz.getSimpleName()+" 的关键字为 "+id+"  的对象不存在 ");

}catch(Exception e)
{
logger.debug("  delete(Class, long)  excute is error  . Error="+e.toString());
throw new DaoException(Messages.getString("BaseDao.delete.Error"));

}

}

/* (non-Javadoc)
* @see zhenjw.base.hibernate.db.dao.IBaseDao#batchDelete(java.lang.Class, long[])
*/
public void batchDelete(Class clazz, long[] id) {
// TODO Auto-generated method stub
String strId="";
for(int i=0;i<id.length;i++)
{
if(i>0)
  strId+=", "+id[i];
else
strId=""+id[i];
}
logger.debug("batchDelete(Class, long[])  id[]={"+strId+"}"); 
for(int i=0;i<id.length;i++)
{
this.delete(clazz,id[i]);
}

}



}


这两个可以满足所有的基本需求的实现
分享到:
评论

相关推荐

    basedao_basedao数据库_

    "基于BaseDao的手动数据库操作"是一个常见的话题,尤其在Java开发中。BaseDao是一种设计模式,它通常被用来作为数据库访问对象(DAO)的基础,用于封装数据库的基本CRUD(创建、读取、更新、删除)操作。这种模式...

    常用的BaseDAO及其实现

    "常用的BaseDAO及其实现" BaseDAO是Java中一种常用的数据访问对象(DAO),它提供了统一的数据访问接口,封装了数据访问的基本操作。BaseDAO通常是通过继承HibernateDaoSupport类实现的。 BaseDAO的主要功能包括:...

    java泛型BaseDao与BaseService

    在Java开发中,BaseDao和BaseService是常见的设计模式,用于实现数据访问层(DAO)和业务逻辑层(Service)的抽象基类。通过结合泛型,我们可以创建更通用、灵活的代码,减少冗余并提高代码质量。 首先,我们来理解...

    基于hibernate的baseDao

    **基于Hibernate的BaseDAO** 在Java企业级开发中,数据访问层(DAO,Data Access Object)是连接业务逻辑层和数据库的重要桥梁。BaseDAO是一种通用的设计模式,它封装了Hibernate框架的基本操作,使得业务逻辑层...

    hibernate>>BaseDAO

    `BaseDAO`是许多项目中常见的一种设计模式,它代表了数据访问对象(Data Access Object)的基础类,用于封装对数据库的通用操作。现在我们来深入探讨`hibernate`中的`BaseDAO`及其相关知识点。 首先,DAO设计模式是...

    NC65通过BaseDAO操作数据库

    NC65通过BaseDAO操作数据库,包含接口类及接口实现类: /** * 获取baseDAO * @return */ public BaseDAO getBaseDAO() { if(baseDAO == null){ baseDAO = new BaseDAO(); } return baseDAO; } public ...

    ssh+baseDao实现分页

    在IT行业中,SSH(Spring、Struts、Hibernate)是一个经典的Java Web开发框架组合,而BaseDao是常用于数据访问层的一个基类设计。本话题主要围绕如何利用SSH框架结合BaseDao实现分页功能来展开。 首先,让我们了解...

    Spring声明式事务及BaseDao完整版

    本篇将重点讲解Spring的声明式事务管理和BaseDao的设计与实现。 一、Spring声明式事务管理 1. **什么是事务**:事务是数据库操作的基本单元,它保证了数据的一致性和完整性。一个事务中的所有操作要么全部成功,...

    企业通用BaseDao方法集

    在企业级软件开发中,通用BaseDao方法集是提高代码复用性和开发效率的重要工具。BaseDao(Base Data Access Object)通常是一个基类,它包含了数据库操作的基本方法,供其他具体的DAO类继承使用。BaseDao的设计理念...

    SpringBoot_BaseDao.zip

    "SpringBoot_BaseDao.zip"这个压缩包文件显然与SpringBoot相关的数据库操作有关,特别是关于BaseDao的基础使用和实现。在Java开发中,Dao(Data Access Object)层是负责处理数据访问的,通常用于与数据库进行交互。...

    基于SpringJDBC的BaseDAO

    ### 基于Spring JDBC的BaseDAO实现与应用 #### 概述 在Java开发领域,尤其是企业级应用开发中,持久层框架是至关重要的组件之一。Spring框架提供了多种方式来处理数据库操作,其中Spring JDBC模块是轻量级且功能...

    SSH集成查询分页处理BaseDao

    在标题提到的"SSH集成查询分页处理BaseDao"中,我们主要关注的是如何在SSH框架下实现数据的分页查询。 分页是大型Web应用中必不可少的功能,它能够帮助用户更有效地浏览和管理大量数据。在这个场景中,"BaseDao...

    Java通用的BaseDao(我是用连接池做的你把里面代码换一下就行了)

    在Java开发中,BaseDao(基础数据访问对象)是一个常见的设计模式,用于提供数据库操作的通用接口或基类。这个模式的主要目标是提高代码的复用性和可维护性,通过抽象出基本的CRUD(创建、读取、更新、删除)操作,...

    BaseDao.java,DaoUtil.java

    在Java编程语言中,`BaseDao.java` 和 `DaoUtil.java` 文件通常包含了与数据库交互的核心逻辑,特别是针对关系型数据库如MySQL。这两个文件中的类和方法是基于JDBC(Java Database Connectivity)API实现的,这是一...

    dbutils封装ORM 实现BaseDAO

    `BaseDAO` 的封装则是一种常见的设计模式,用于简化数据访问对象(DAO)的实现,使得业务代码更加简洁、可维护。 `dbutils` 主要包含以下几个核心概念和功能: 1. **QueryRunner**: QueryRunner类是dbutils的主要...

    基于注解反射封装的BaseDao(支持一对多查询)

    在Java开发中,`BaseDao` 是一个常见的设计模式,用于提供数据访问对象(DAO)的基础功能,方便其他业务逻辑层或数据访问层组件进行数据库操作。本篇将深入探讨如何利用注解和反射机制来封装一个支持一对多查询的 `...

    spring4+hibernate4 封装BaseDao增删改查以及分页,,支持jdk1.7,不支持jdk1.8

    3. **BaseDao封装**:BaseDao是一般用于数据访问层的基类,它包含了通用的CRUD操作。在这个项目中,BaseDao可能已经定义了如`save()`, `update()`, `delete()`, `findById()`, `findAll()`等方法,以供其他特定的DAO...

    Hibernate底层数据库操作函数BaseDao+具体实例

    `BaseDao`是常见的一种设计模式,用于封装Hibernate的基本数据库操作,它为业务层提供了一种统一的接口,方便进行CRUD(创建、读取、更新、删除)操作。在这个主题中,我们将深入探讨`BaseDao`的设计与实现,以及...

    baseDao封装基本的增删查改方法

    使用baseDao封装基本的增删改查的方法,包括分页查询等功能

    JDBC连接数据库BaseDao通用类(可以调用存储过程)

    ### JDBC与BaseDao通用类 #### JDBC(Java Database Connectivity) JDBC是一种用于执行SQL语句的Java API,它可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC定义了一系列的API,...

Global site tag (gtag.js) - Google Analytics