⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 basedaoimpl.java

📁 SSH的平台搭建
💻 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 + -