CRM-数据库查询助手QueryHelper

CRM-数据库查询助手QueryHelper

查询工具类QueryHelper, 里面需要对将要查询的hql和参数进行组装。这样不仅会简化我们的查询工作,
还可以减少错误,快速定位错误。

该工具类的主要方法有:
。该工具类主要方法有:
->QueryHelper(Class clazz, String alias) 构造器,主要组装from 子句
->addCondition(String condition, Object… param) 组装where子句
->addOrderByProperty(String property, String order) 组装order by 子句
->getListQueryHql() 返回查询列表的hql
->getCountQueryHql() 返回统计总记录数的hql
->getParameters() 返回参数列表

具体实现:

public class QueryHelper {

    //from 子句
    private String fromClause = "";
    //where 子句
    private String whereClause = "";
    //order by 子句
    private String orderByClause = "";

    //where 子句中?对应的参数值
    private List<Object> parameters;

    public static String ORDER_BY_ASC = "ASC";//升序
    public static String ORDER_BY_DESC = "DESC";//降序

    /**
     * 利用构造方法构造from子句
     * @param clazz 实体类
     * @param alias 别名
     */
    public QueryHelper(Class clazz, String alias){
        fromClause = "FROM " + clazz.getSimpleName() + " " + alias;
    }
    /**
     * 组装where子句
     * @param condition 条件
     * @param params 条件中?对应的参数值
     * @return QueryHelper
     */
    public QueryHelper addCondition(String condition, Object...params){
        if(whereClause.length() > 0){
            whereClause += " AND " + condition;
        } else {
            whereClause = " WHERE " + condition;
        }
        if(parameters == null){
            parameters = new ArrayList<Object>();
        }
        for(Object param: params){
            parameters.add(param);
        }
        return this;
    }
    /**
     * 构建order by 子句
     * @param property 排序的属性
     * @param order 升序(asc)或是降序(desc)
     * @return QueryHelper
     */
    public QueryHelper addOrderByProperty(String property, String order){
        if(orderByClause.length() > 0){
            orderByClause += "," + property + " " + order;
        } else {
            orderByClause += " ORDER BY " + property + " " + order;
        }
        return this;
    }

    //返回列表查询hql语句
    public String getListQueryHql(){
        return fromClause + whereClause + orderByClause;
    }

    //返回查询总记录数的hql
    public String getCountHql(){
        return "SELECT COUNT(*) " + fromClause + whereClause;
    }

    public List<Object> getParameters() {
        return parameters;
    }
}
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值