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
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
相关阅读更多精彩内容
- English Version spring-repository-plus https://github.com...
- EasyDB 基于ORMLite封装的数据库操作工具类——致力于最简洁的数据库操作API 功能点 支持自定义数据库...