hql封装dao_2

import java.sql.SQLException;
import java.util.List;
import java.util.Map;
import java.util.Map.Entry;

import org.hibernate.HibernateException;
import org.hibernate.Query;
import org.hibernate.Session;
import org.springframework.orm.hibernate3.HibernateCallback;
import org.springframework.orm.hibernate3.support.HibernateDaoSupport;

public class SealDao<POJO> extends HibernateDaoSupport{
	/**
	 * description:hql获取list
	 * @param hql
	 * @param map<String,Object>
	 * @return List<POJO>
	 * 
	 * */
	public List<POJO> getList(final String hql,final Map<String,Object>keyValue)throws Exception{
		
		return getHibernateTemplate().execute(new HibernateCallback<List<POJO>>(){
			@Override
			public List<POJO> doInHibernate(Session session)
					throws HibernateException, SQLException {
				// TODO Auto-generated method stub
				Query query=session.createQuery(hql);
				for(Entry<String, Object> entry : keyValue.entrySet()){
					query.setParameter(entry.getKey(),entry.getValue());
				}
				return query.list();
			}
			
		});
		
	}
	
	/**
	 * description:hql分页获取list
	 * @param hql
	 * @param map<String,Object>
	 * @param start
	 * @param end
	 * @return List<POJO>
	 * 
	 * */
	public List<POJO> getListByPage(final String hql,final Map<String,Object>keyValue,final Integer start,final Integer end)throws Exception{
		
		return getHibernateTemplate().execute(new HibernateCallback<List<POJO>>(){
			@Override
			public List<POJO> doInHibernate(Session session)
					throws HibernateException, SQLException {
				Query query=session.createQuery(hql);
				for(Entry<String, Object> entry : keyValue.entrySet()){
					query.setParameter(entry.getKey(),entry.getValue());
				}
				
				query.setFirstResult(start);
				query.setMaxResults(end);
				
				return query.list();
			}
			
		});
		
	}
	
	/**
	 * description:hql获取POJO
	 * @param hql
	 * @param map<String,Object>
	 * @return POJO
	 * 
	 * */
	public POJO getOne(final String hql, final Map<String, Object> keyVal)
    {
        // TODO Auto-generated method stub
        return getHibernateTemplate().execute(new HibernateCallback<POJO>()
        {

            @Override
            public POJO doInHibernate(Session session) throws HibernateException, SQLException
            {
                // TODO Auto-generated method stub
                Query query = session.createQuery(hql);
                for(Entry<String, Object> entry : keyVal.entrySet())
                {
                    query.setParameter(entry.getKey(), entry.getValue());
                }
                return (POJO)query.uniqueResult();
            }
        });
    }
	
	/**
	 * description:hql更新
	 * @param hql
	 * @param map<String,Object>
	 * @return 
	 * 
	 * */
	public void update(final String hql, final Map<String, Object> keyVal)
    {
        // TODO Auto-generated method stub
        getHibernateTemplate().execute(new HibernateCallback<Object>()
        {
            @Override
            public Object doInHibernate(Session session) throws HibernateException, SQLException
            {
                // TODO Auto-generated method stub
                Query query = session.createQuery(hql);
                for(Entry<String, Object> entry : keyVal.entrySet())
                {
                    query.setParameter(entry.getKey(), entry.getValue());
                }
                query.executeUpdate();
                return null;
            }
        });
    }
	
}

hql封装dao_2

posted @ 2014-04-17 10:35  石湖山庄  阅读(146)  评论(0编辑  收藏  举报