refactor: SQL拼接

This commit is contained in:
junjie
2021-07-12 16:35:03 +08:00
parent 250b9b89c7
commit ad23936022
6 changed files with 32 additions and 17 deletions

View File

@@ -391,7 +391,7 @@ public class DorisQueryProvider extends QueryProvider {
case "null":
return " IN ";
case "not_null":
return " NOT IN ";
return " IS NOT NULL AND %s <> ''";
case "between":
return " BETWEEN ";
default:
@@ -420,8 +420,10 @@ public class DorisQueryProvider extends QueryProvider {
} else {
whereName = originName;
}
if (StringUtils.containsIgnoreCase(request.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = DorisConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName);
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
@@ -551,8 +553,10 @@ public class DorisQueryProvider extends QueryProvider {
} else {
whereName = originField;
}
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = DorisConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField);
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
@@ -600,8 +604,10 @@ public class DorisQueryProvider extends QueryProvider {
String whereTerm = transMysqlFilterTerm(f.getTerm());
String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = DorisConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField);
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {

View File

@@ -340,9 +340,9 @@ public class MysqlQueryProvider extends QueryProvider {
public String createRawQuerySQL(String table, List<DatasetTableField> fields) {
String[] array = fields.stream().map(f -> {
StringBuilder stringBuilder = new StringBuilder();
if(f.getDeExtractType() == 4){ // 处理 tinyint
if (f.getDeExtractType() == 4) { // 处理 tinyint
stringBuilder.append("concat(`").append(f.getOriginName()).append("`,'') AS ").append(f.getDataeaseName());
}else {
} else {
stringBuilder.append("`").append(f.getOriginName()).append("` AS ").append(f.getDataeaseName());
}
return stringBuilder.toString();
@@ -380,7 +380,7 @@ public class MysqlQueryProvider extends QueryProvider {
case "null":
return " IN ";
case "not_null":
return " NOT IN ";
return " IS NOT NULL AND %s <> ''";
case "between":
return " BETWEEN ";
default:
@@ -409,8 +409,10 @@ public class MysqlQueryProvider extends QueryProvider {
} else {
whereName = originName;
}
if (StringUtils.containsIgnoreCase(request.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = MySQLConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName);
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
@@ -547,8 +549,10 @@ public class MysqlQueryProvider extends QueryProvider {
} else {
whereName = originField;
}
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = MySQLConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField);
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
@@ -595,8 +599,10 @@ public class MysqlQueryProvider extends QueryProvider {
String whereTerm = transMysqlFilterTerm(f.getTerm());
String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = MySQLConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField);
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {

View File

@@ -395,7 +395,7 @@ public class OracleQueryProvider extends QueryProvider {
case "null":
return " IN ";
case "not_null":
return " NOT IN ";
return " IS NOT NULL AND %s <> ''";
case "between":
return " BETWEEN ";
default:
@@ -424,8 +424,10 @@ public class OracleQueryProvider extends QueryProvider {
} else {
whereName = originName;
}
if (StringUtils.containsIgnoreCase(request.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(request.getTerm(), "null")) {
whereValue = OracleConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(request.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originName);
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(value, "','") + "')";
} else if (StringUtils.containsIgnoreCase(request.getTerm(), "like")) {
@@ -575,8 +577,10 @@ public class OracleQueryProvider extends QueryProvider {
} else {
whereName = originField;
}
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = OracleConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField);
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {
@@ -623,8 +627,10 @@ public class OracleQueryProvider extends QueryProvider {
String whereTerm = transMysqlFilterTerm(f.getTerm());
String whereValue = "";
// 原始类型不是时间在de中被转成时间的字段做处理
if (StringUtils.containsIgnoreCase(f.getTerm(), "null")) {
if (StringUtils.equalsIgnoreCase(f.getTerm(), "null")) {
whereValue = OracleConstants.WHERE_VALUE_NULL;
} else if (StringUtils.equalsIgnoreCase(f.getTerm(), "not_null")) {
whereTerm = String.format(whereTerm, originField);
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "in")) {
whereValue = "('" + StringUtils.join(f.getValue(), "','") + "')";
} else if (StringUtils.containsIgnoreCase(f.getTerm(), "like")) {