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;
}
}
Hibernate动态查询工具类RequestQuery
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- English Version spring-repository-plus https://github.com...
- EasyDB 基于ORMLite封装的数据库操作工具类——致力于最简洁的数据库操作API 功能点 支持自定义数据库...