CombinatorialQuery.java 5.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. package com.happy.unitil;
  2. import net.sf.json.JSONArray;
  3. import net.sf.json.JSONObject;
  4. /**
  5. * 前端框架复合查询工具类
  6. *
  7. * @author zjs
  8. *
  9. */
  10. public class CombinatorialQuery {
  11. // 组合条件查询
  12. public static String query(String condition) {
  13. String json = condition;
  14. String sql = "where 1=1 ";
  15. JSONArray jsonArray = JSONArray.fromObject(json);
  16. String join = "";
  17. for (int j = 0; j < jsonArray.size(); j++) {
  18. JSONObject jsonObject = jsonArray.getJSONObject(j);
  19. String lb = jsonObject.getString("lb");
  20. String field = jsonObject.getString("field");
  21. String op = jsonObject.getString("op");
  22. String value = jsonObject.getString("value");
  23. String rb = jsonObject.getString("rb");
  24. if (!field.equals("")) {
  25. if (op.equals("contains")) {// 包含
  26. sql += join + " " + field + " like '%" + value + "%' ";
  27. } else if (op.equals("equal")) {// 等于
  28. sql += join + " " + field + "='" + value + "' ";
  29. } else if (op.equals("notequal")) {// 不等于
  30. sql += join + " " + field + "<>'" + value + "' ";
  31. } else if (op.equals("greater")) {// 大于
  32. sql += join + " " + field + ">'" + value + "' ";
  33. } else if (op.equals("greaterorequal")) {// 大于或等于
  34. sql += join + " " + field + ">='" + value + "' ";
  35. } else if (op.equals("less")) {// 小于
  36. sql += join + " " + field + "<'" + value + "' ";
  37. } else if (op.equals("lessorequal")) {// 小于或等于
  38. sql += join + " " + field + "<='" + value + "' ";
  39. } else if (op.equals("beginwith")) {// 以....开头
  40. sql += join + " " + field + " like '" + value + "%' ";
  41. } else if (op.equals("endwith")) {// 以....结尾
  42. sql += join + " " + field + " like '%" + value + "' ";
  43. }
  44. }
  45. }
  46. if (!sql.equals("where ")) {
  47. return sql;
  48. }
  49. return null;
  50. }
  51. /**
  52. * 复合查询工具类
  53. *
  54. * @param
  55. * //第page页
  56. * @param
  57. * //每页行数
  58. * @param advanceFilter
  59. * //组合查询条件
  60. * @param sort
  61. * //排序字段名
  62. * @param order
  63. * //排序方式
  64. * @param filterRules
  65. * //过滤条件
  66. * @return
  67. */
  68. public static String queryOne(String advanceFilter, String sort,
  69. String order, String filterRules) {
  70. String sql = "where 1=1 ";
  71. if (advanceFilter != null && !advanceFilter.equals("[]")) {
  72. // System.out.println("advanceFilter有条件");
  73. String json = advanceFilter;
  74. JSONArray jsonArray = JSONArray.fromObject(json);
  75. for (int j = 0; j < jsonArray.size(); j++) {
  76. JSONObject jsonObject = jsonArray.getJSONObject(j);
  77. String join = jsonObject.getString("join");
  78. String lb = jsonObject.getString("lb");
  79. String field = jsonObject.getString("field");
  80. String op = jsonObject.getString("op");
  81. String value = jsonObject.getString("value");
  82. String rb = jsonObject.getString("rb");
  83. if (!field.equals("")) {
  84. if (op.equals("contains")) {// 包含
  85. sql += join + " " + field + " like '%" + value + "%' ";
  86. } else if (op.equals("equal")) {// 等于
  87. sql += join + " " + field + "='" + value + "' ";
  88. } else if (op.equals("notequal")) {// 不等于
  89. sql += join + " " + field + "<>'" + value + "' ";
  90. } else if (op.equals("greater")) {// 大于
  91. sql += join + " " + field + ">'" + value + "' ";
  92. } else if (op.equals("greaterorequal")) {// 大于或等于
  93. sql += join + " " + field + ">='" + value + "' ";
  94. } else if (op.equals("less")) {// 小于
  95. sql += join + " " + field + "<'" + value + "' ";
  96. } else if (op.equals("lessorequal")) {// 小于或等于
  97. sql += join + " " + field + "<='" + value + "' ";
  98. } else if (op.equals("beginwith")) {// 以....开头
  99. sql += join + " " + field + " like '" + value + "%' ";
  100. } else if (op.equals("endwith")) {// 以....结尾
  101. sql += join + " " + field + " like '%" + value + "' ";
  102. }
  103. }
  104. }
  105. }
  106. if (filterRules != null && !filterRules.equals("[]")) {
  107. // System.out.println("filterRules有条件");
  108. String json = filterRules;
  109. JSONArray jsonArray = JSONArray.fromObject(json);
  110. JSONObject jsonObject = jsonArray.getJSONObject(0);
  111. String field = jsonObject.getString("field");
  112. String value = jsonObject.getString("value");
  113. sql += "and " + field + " like '%" + value + "%' ";
  114. }
  115. sql += "order by " ;
  116. if (sort != null) {
  117. // System.out.println("sort有排序");
  118. sql += sort + " " + order + " ";
  119. } else {
  120. sql += " id desc ";
  121. }
  122. return sql;
  123. }
  124. // 组合条件+排序条件查询
  125. public static String queryTwo(String string1, String string2, String string3) {
  126. System.out.println(string1);
  127. System.out.println(string2);
  128. System.out.println(string3);
  129. return null;
  130. }
  131. public static void main(String[] args) {
  132. double aa = -19162431.1254;
  133. String a = "19162b431";
  134. String b = "-19162431a1254";
  135. String c = "中文";
  136. System.out.println(isNumericZidai(Double.toString(aa)));
  137. System.out.println(isNumericZidai(a));
  138. System.out.println(isNumericZidai(b));
  139. System.out.println(isNumericZidai(c));
  140. }
  141. public static boolean isNumericZidai(String str) {
  142. for (int i = 0; i < str.length(); i++) {
  143. // System.out.println(str.charAt(i));
  144. if (!Character.isDigit(str.charAt(i))) {
  145. return false;
  146. }
  147. }
  148. return true;
  149. }
  150. }