Hibernate动态查询工具类RequestQuery

public class RequestQuery {

    private String parameterName;
    private String compareType;
    private Object value;
    // get set

    public static List<RequestQuery> buildRequestQuery(HttpServletRequest request)
            throws IllegalAccessException {
        List<RequestQuery> requestQueryList = new ArrayList<>();
        //获取所有查询参数的键值
        Enumeration<String> enumeration = request.getParameterNames();
        while(enumeration.hasMoreElements()) {
            String queryKey = enumeration.nextElement();
            String value = request.getParameter(queryKey);
            if (queryKey.startsWith("q_") && !"".equals(value) && value != null) {
                //q_productName_like_s
                String[] array = queryKey.split("_");
                if (array == null && array.length != 4) {
                    throw new IllegalAccessException("查询条件异常:" + queryKey);
                }
                RequestQuery query = new RequestQuery();
                query.setParameterName(array[1]);
                query.setCompareType(array[2]);
                query.setValue(transValueType(array[3],value));
                requestQueryList.add(query);
            }
        }
        return requestQueryList;
    }

    //将查询参数的value值进行转化的方法
    private static Object transValueType(String valueType,String value) {
        if ("s".equalsIgnoreCase(valueType)) {
            return value;
        }
        if ("d".equalsIgnoreCase(valueType)) {
            return Double.valueOf(value);
        }
        if("f".equalsIgnoreCase(valueType)) {
            return Float.valueOf(value);
        }
        if("i".equalsIgnoreCase(valueType)) {
            return Integer.valueOf(value);
        }
        if("bd".equalsIgnoreCase(valueType)) {
            return new BigDecimal(value);
        }
        return null;
    }


}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容