|
@@ -10,10 +10,7 @@ package cn.com.qmth.examcloud.core.oe.admin.base.jpa;
|
|
import java.util.Collection;
|
|
import java.util.Collection;
|
|
|
|
|
|
/**
|
|
/**
|
|
- * 原生SQL包装类
|
|
|
|
- *
|
|
|
|
- * @author: QMTH
|
|
|
|
- * @since: 2018/8/28
|
|
|
|
|
|
+ * 常用SQL包装类
|
|
*/
|
|
*/
|
|
public class SqlWrapper {
|
|
public class SqlWrapper {
|
|
|
|
|
|
@@ -39,10 +36,6 @@ public class SqlWrapper {
|
|
|
|
|
|
private static final String LEFT_JOIN = " LEFT JOIN ";
|
|
private static final String LEFT_JOIN = " LEFT JOIN ";
|
|
|
|
|
|
- private static final String UNION_ALL = " UNION ALL ";
|
|
|
|
-
|
|
|
|
- private static final String UNION = " UNION ";
|
|
|
|
-
|
|
|
|
private static final String ON = " ON ";
|
|
private static final String ON = " ON ";
|
|
|
|
|
|
private static final String AS = " AS ";
|
|
private static final String AS = " AS ";
|
|
@@ -69,8 +62,6 @@ public class SqlWrapper {
|
|
|
|
|
|
private static final String DESC = " DESC ";
|
|
private static final String DESC = " DESC ";
|
|
|
|
|
|
- private static final String HAVING = " HAVING ";
|
|
|
|
-
|
|
|
|
private StringBuilder sql = new StringBuilder();
|
|
private StringBuilder sql = new StringBuilder();
|
|
|
|
|
|
public SqlWrapper select() {
|
|
public SqlWrapper select() {
|
|
@@ -144,11 +135,6 @@ public class SqlWrapper {
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
- public SqlWrapper having() {
|
|
|
|
- sql.append(HAVING);
|
|
|
|
- return this;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public SqlWrapper or() {
|
|
public SqlWrapper or() {
|
|
sql.append(OR);
|
|
sql.append(OR);
|
|
return this;
|
|
return this;
|
|
@@ -164,13 +150,8 @@ public class SqlWrapper {
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
- public SqlWrapper like(String fieldName, Number value) {
|
|
|
|
- sql.append(fieldName).append(LIKE).append("'%").append(value).append("%'");
|
|
|
|
- return this;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
public SqlWrapper eq(String fieldName, Number value) {
|
|
public SqlWrapper eq(String fieldName, Number value) {
|
|
- sql.append(fieldName).append(" = ").append("'").append(value).append("'");
|
|
|
|
|
|
+ sql.append(fieldName).append(" = ").append(value);
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -185,7 +166,7 @@ public class SqlWrapper {
|
|
}
|
|
}
|
|
|
|
|
|
public SqlWrapper notEq(String fieldName, Number value) {
|
|
public SqlWrapper notEq(String fieldName, Number value) {
|
|
- sql.append(fieldName).append(" != ").append("'").append(value).append("'");
|
|
|
|
|
|
+ sql.append(fieldName).append(" != ").append(value);
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -195,7 +176,7 @@ public class SqlWrapper {
|
|
}
|
|
}
|
|
|
|
|
|
public SqlWrapper gt(String fieldName, Number value) {
|
|
public SqlWrapper gt(String fieldName, Number value) {
|
|
- sql.append(fieldName).append(" > ").append("'").append(value).append("'");
|
|
|
|
|
|
+ sql.append(fieldName).append(" > ").append(value);
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -205,7 +186,7 @@ public class SqlWrapper {
|
|
}
|
|
}
|
|
|
|
|
|
public SqlWrapper gte(String fieldName, Number value) {
|
|
public SqlWrapper gte(String fieldName, Number value) {
|
|
- sql.append(fieldName).append(" >= ").append("'").append(value).append("'");
|
|
|
|
|
|
+ sql.append(fieldName).append(" >= ").append(value);
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -215,7 +196,7 @@ public class SqlWrapper {
|
|
}
|
|
}
|
|
|
|
|
|
public SqlWrapper lt(String fieldName, Number value) {
|
|
public SqlWrapper lt(String fieldName, Number value) {
|
|
- sql.append(fieldName).append(" < ").append("'").append(value).append("'");
|
|
|
|
|
|
+ sql.append(fieldName).append(" < ").append(value);
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -225,7 +206,7 @@ public class SqlWrapper {
|
|
}
|
|
}
|
|
|
|
|
|
public SqlWrapper lte(String fieldName, Number value) {
|
|
public SqlWrapper lte(String fieldName, Number value) {
|
|
- sql.append(fieldName).append(" <= ").append("'").append(value).append("'");
|
|
|
|
|
|
+ sql.append(fieldName).append(" <= ").append(value);
|
|
return this;
|
|
return this;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -282,21 +263,29 @@ public class SqlWrapper {
|
|
}
|
|
}
|
|
|
|
|
|
private String spilt(Collection<?> values) {
|
|
private String spilt(Collection<?> values) {
|
|
- if (values == null || values.size() == 0) {
|
|
|
|
|
|
+ if (values == null || values.isEmpty()) {
|
|
throw new IllegalArgumentException("Values must be not empty.");
|
|
throw new IllegalArgumentException("Values must be not empty.");
|
|
}
|
|
}
|
|
- int index = 0, total = values.size();
|
|
|
|
|
|
+
|
|
StringBuilder str = new StringBuilder();
|
|
StringBuilder str = new StringBuilder();
|
|
|
|
+
|
|
|
|
+ int index = 0, total = values.size();
|
|
for (Object value : values) {
|
|
for (Object value : values) {
|
|
- if (!(value instanceof CharSequence || value instanceof Number)) {
|
|
|
|
|
|
+ if (value instanceof Number) {
|
|
|
|
+ str.append(value);
|
|
|
|
+ } else if (value instanceof CharSequence) {
|
|
|
|
+ str.append("'").append(value).append("'");
|
|
|
|
+ } else {
|
|
throw new IllegalArgumentException("Values must be charSequence or number.");
|
|
throw new IllegalArgumentException("Values must be charSequence or number.");
|
|
}
|
|
}
|
|
- str.append(value.toString());
|
|
|
|
|
|
+
|
|
if (index < (total - 1)) {
|
|
if (index < (total - 1)) {
|
|
str.append(",");
|
|
str.append(",");
|
|
}
|
|
}
|
|
|
|
+
|
|
index++;
|
|
index++;
|
|
}
|
|
}
|
|
|
|
+
|
|
return str.toString();
|
|
return str.toString();
|
|
}
|
|
}
|
|
|
|
|