📄 basedaoimpl.java
字号:
package com.lovo.zengxy.base.dao;
import java.util.List;
import org.apache.log4j.Logger;
import org.hibernate.Query;
import org.hibernate.Session;
import org.hibernate.criterion.Criterion;
import org.hibernate.criterion.DetachedCriteria;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;
import com.lovo.zengxy.util.BaseDAOException;
/**
* 基类DAO的实现类
* @author fw
* @version 1.0.0 2007-11-11
*/
public class BaseDAOImpl extends HibernateDaoSupport implements BaseDAO{
private Logger log = null;
/**
* 添加日志
* @param clazz
* @return Logger
*/
public Logger getLog()
{
if(log==null)
{
log = Logger.getLogger(this.getClass());
// System.out.println(this.getClass().getName());
}
return log;
}
/**
* 按主键删除一个对象
* @param id
* @param clazz
*/
public void delete(long id,Class clazz) throws BaseDAOException {
Object object = this.load(id, clazz);
this.getHibernateTemplate().delete(object);
}
/**
* 按主键查找一个对象
* @param id
* @param clazz
* @return Object
*/
public Object load(long id,Class clazz) throws BaseDAOException{
return this.getHibernateTemplate().load(clazz, id);
}
public Object get(long id,Class clazz) throws BaseDAOException
{
return this.getHibernateTemplate().get(clazz, id);
}
/**
* 保存一个对象
* @param object
*/
public void save(Object object) throws BaseDAOException{
this.getHibernateTemplate().save(object);
}
/**
* 修改一个对象
* @param object
*/
public void update(Object object) throws BaseDAOException{
this.getHibernateTemplate().update(object);
}
/**
* 获得分页记录
* @param firstResult
* @param maxResults
* @param hql
* @return List
*/
public List cutPage(final int firstResult,final int maxResults,final String hql,final Object[] args) throws BaseDAOException
{
return (List)this.getHibernateTemplate().execute(new HibernateCallback(){
public Object doInHibernate(Session session){
Query query = session.createQuery(hql);
if(args!=null)
{
for(int i=0;i<args.length;i++)
{
query.setParameter(i, args[i]);
}
}
query.setFirstResult(firstResult);
query.setMaxResults(maxResults);
return query.list();
}});
}
/**
* 查询所有记录
* @param clazz
* @return List
*/
public List findAll(Class clazz) throws BaseDAOException{
return this.getHibernateTemplate().find("from "+clazz.getName());
}
/**
* 条件查询
* @param hql
* @param args
* @return List
*/
public List findByCondition(final String hql, Object[] args) throws BaseDAOException
{
return this.getHibernateTemplate().find(hql,args);
}
/**
* 条件删除
* @param hql
* @param args
* @return int 操作是否成功
*/
public int deleteByCondition(final String hql, final Object[] args) throws BaseDAOException
{
Integer isDelete = (Integer) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(hql);
if (args != null) {
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
}
}
return new Integer(query.executeUpdate());
}
});
return isDelete;
}
/**
* 条件修改
* @param hql
* @param args
* @return int 操作是否成功
*/
public int updateByCondition(final String hql, final Object[] args) throws BaseDAOException
{
Integer isUpdate = (Integer) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery(hql);
if (args != null) {
for (int i = 0; i < args.length; i++) {
query.setParameter(i, args[i]);
}
}
return new Integer(query.executeUpdate());
}
});
return isUpdate;
}
/**
* 删除全部
* @param clazz
* @return int 操作是否成功
*/
public int deleteAll(final Class clazz) throws BaseDAOException
{
return (Integer) this.getHibernateTemplate().execute(new HibernateCallback() {
public Object doInHibernate(Session session) {
Query query = session.createQuery("delete " + clazz.getName());
return new Integer(query.executeUpdate());
}
});
}
/**
* 条件查询1条记录
* @param hql
* @param args
* @return Object
*/
public Object getByCondition(final String hql, Object[] args) throws BaseDAOException
{
return this.getHibernateTemplate().find(hql,args).get(0);
}
/**
* 使用Criterion条件查询
* @param clazz
* @param criterion
* @return
* @throws BaseDAOException
*/
public List findByCriteria(Class clazz,Criterion... criterion) throws BaseDAOException {
DetachedCriteria detachedCrit = DetachedCriteria.forClass(clazz);
for (Criterion c : criterion)
{
detachedCrit.add(c);
}
return getHibernateTemplate().findByCriteria(detachedCrit);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -