HibernateCRUD基础框架(3)-简单的和较为复杂的标准的CRUD API(二)

2014-11-24 07:14:41 · 作者: · 浏览: 1
ap params = createMap(pair); return update(hql, params); } public Integer update(String hql, Map params) { Query query = createQuery(hql, params); return query.executeUpdate(); } // /////////////////////////////////////////////// // ////////////创建Query对象///////////////////////// // /////////////////////////////////////////////// protected Query createQuery(String hql, Map params) { return DaoUtils.createQuery(getCurrentSession(), hql, params); } protected Query createQuery(String hql, String key, Object value) { return DaoUtils.createQuery(getCurrentSession(), hql, key, value); } protected Query createQuery(String hql) { return DaoUtils.createQuery(getCurrentSession(), hql); } protected Map createMap() { return DaoUtils.createMap(); } protected Map createMap(String key, Object value) { return DaoUtils.createMap(key, value); } protected Map createMap(Pair... pair) { return DaoUtils.createMap(pair); } }

2.BasicQueryUpdateDao完成几个较为通用的几个功能

包括获取记录总数count、获取一个列表list、获得唯一结果unique。

package cn.fansunion.hibernate;

import java.util.List;
import java.util.Map;

import org.hibernate.Query;

import cn.fansunion.hibernate.util.EmptyUtils;
import cn.fansunion.hibernate.util.PageConstants;
import cn.fansunion.hibernate.util.PageUtils;
import cn.fansunion.hibernate.util.Pair;

/**
 * 完成基本的查询操作。
 *
 * @author LeiWen@FansUnion.cn
 */
public class BasicQueryUpdateDao
  
    extends CrudDao
   
     { public static final boolean NOT_PAGE = false; public static final boolean NEED_PAGE = true; // /////////////////////////////////////////////// // ////////////获取记录总数///////////////////////// // /////////////////////////////////////////////// public Integer count(String hql) { Query query = createQuery(hql); Integer count = doCount(query); return count; } public Integer count(String hql, String key, Object value) { Query query = createQuery(hql, key, value); Integer count = doCount(query); return count; } public Integer count(String hql, Pair... pair) { Map
    
      params = createMap(pair); return count(hql, params); } public Integer count(String hql, Map
     
       params) { Query query = createQuery(hql, params); Integer count = doCount(query); return count; } protected Integer doCount(Query query) { Integer count = 0; Object uniqueResult = query.uniqueResult(); if (uniqueResult != null) { count = Integer.parseInt(uniqueResult.toString()); } return count; } // /////////////////////////////////////////////// // ///////获取一个列表(不使用泛型 List
      
       )///////////////// // /////////////////////////////////////////////// // 执行不带参数的hql查询,返回一个结果集List public List list(String hql, boolean needPage) { return list(hql, needPage); } public List list(String hql, String key, Object value, boolean needPage) { Map
       
         params = createMap(key, value); return list(hql, params, needPage); } public List list(String hql, Map
        
          params, boolean needPage) { if (needPage) { PageUtils.fillDefaultPageParams(params); } List list = list(hql, params, needPage); return list; } // 执行带参数并且含有分页的hql查询 private List doList(String hql, Map
         
           params) { Query query = createQuery(hql, params); fillPageParams(query, params); List list = doQuery(query); return list; } /** * 向查询对象Query中设置分页参数 * * @param query * 查询对象 * @param params * 查询参数 */ private void fillPageParams(Query query, Map
          
            params) { Integer firstResult = (Integer) params.get(PageConstants.FIRST_RES