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 功能點 支持自定義數據庫...