Skip to content

Commit 47fbbda

Browse files
authored
Update AbstractSQLConfig.java
1 parent b605e2b commit 47fbbda

File tree

1 file changed

+102
-101
lines changed

1 file changed

+102
-101
lines changed

APIJSONORM/src/main/java/apijson/orm/AbstractSQLConfig.java

Lines changed: 102 additions & 101 deletions
Original file line numberDiff line numberDiff line change
@@ -736,25 +736,26 @@ public abstract class AbstractSQLConfig implements SQLConfig {
736736
SQL_FUNCTION_MAP.put("bitAnd", ""); //bitAnd(a,b)
737737
SQL_FUNCTION_MAP.put("bitOr", ""); //bitOr(a,b)
738738

739-
// PostgreSQL 表结构相关 SQL 函数
740-
SQL_FUNCTION_MAP.put("obj_description", "");
741-
SQL_FUNCTION_MAP.put("col_description", "");
739+
// PostgreSQL 表结构相关 SQL 函数
740+
SQL_FUNCTION_MAP.put("obj_description", "");
741+
SQL_FUNCTION_MAP.put("col_description", "");
742742

743-
// SQLServer 相关 SQL 函数
744-
SQL_FUNCTION_MAP.put("datalength", "");
743+
// SQLServer 相关 SQL 函数
744+
SQL_FUNCTION_MAP.put("len", "");
745+
SQL_FUNCTION_MAP.put("datalength", "");
745746

746747
}
747748

748-
private int[] dbVersionNums = null;
749-
@Override
750-
public int[] getDBVersionNums() {
751-
if (dbVersionNums == null || dbVersionNums.length <= 0) {
752-
dbVersionNums = SQLConfig.super.getDBVersionNums();
753-
}
754-
return dbVersionNums;
755-
}
749+
private int[] dbVersionNums = null;
750+
@Override
751+
public int[] getDBVersionNums() {
752+
if (dbVersionNums == null || dbVersionNums.length <= 0) {
753+
dbVersionNums = SQLConfig.super.getDBVersionNums();
754+
}
755+
return dbVersionNums;
756+
}
756757

757-
@Override
758+
@Override
758759
public boolean limitSQLCount() {
759760
return Log.DEBUG == false || AbstractVerifier.SYSTEM_ACCESS_MAP.containsKey(getTable()) == false;
760761
}
@@ -1014,16 +1015,16 @@ public static boolean isHive(String db) {
10141015
return DATABASE_HIVE.equals(db);
10151016
}
10161017

1017-
@Override
1018-
public boolean isTDengine() {
1019-
return isTDengine(getSQLDatabase());
1020-
}
1021-
public static boolean isTDengine(String db) {
1022-
return DATABASE_TDENGINE.equals(db);
1023-
}
1018+
@Override
1019+
public boolean isTDengine() {
1020+
return isTDengine(getSQLDatabase());
1021+
}
1022+
public static boolean isTDengine(String db) {
1023+
return DATABASE_TDENGINE.equals(db);
1024+
}
10241025

10251026

1026-
@Override
1027+
@Override
10271028
public String getQuote() {
10281029
return isMySQL() || isClickHouse() || isTDengine() ? "`" : "\"";
10291030
}
@@ -1033,7 +1034,7 @@ public String getSchema() {
10331034
return schema;
10341035
}
10351036

1036-
@NotNull
1037+
@NotNull
10371038
public String getSQLSchema() {
10381039
String table = getTable();
10391040
//强制,避免因为全局默认的 @schema 自动填充进来,导致这几个类的 schema 为 sys 等其它值
@@ -2322,12 +2323,12 @@ public String getLimitString() {
23222323
return getLimitString(getPage(), getCount(), isOracle() || isSQLServer() || isDb2(), isOracle());
23232324
}
23242325
/**获取限制数量及偏移量
2325-
* @param page
2326-
* @param count
2327-
* @param isTSQL
2328-
* @param isOracle
2329-
* @return
2330-
*/
2326+
* @param page
2327+
* @param count
2328+
* @param isTSQL
2329+
* @param isOracle
2330+
* @return
2331+
*/
23312332
public static String getLimitString(int page, int count, boolean isTSQL, boolean isOracle) {
23322333
int offset = getOffset(page, count);
23332334

@@ -2614,9 +2615,9 @@ protected String parseCombineExpression(RequestMethod method, String quote, Stri
26142615
String result = "";
26152616

26162617
List<Object> preparedValues = getPreparedValueList();
2617-
if (preparedValues == null && isHaving == false) {
2618-
preparedValues = new ArrayList<>();
2619-
}
2618+
if (preparedValues == null && isHaving == false) {
2619+
preparedValues = new ArrayList<>();
2620+
}
26202621

26212622
Map<String, Integer> usedKeyCountMap = new HashMap<>(size);
26222623

@@ -2813,10 +2814,10 @@ else if (c == ')') {
28132814
}
28142815
}
28152816

2816-
List<Object> exprPreparedValues = getPreparedValueList();
2817-
if (isHaving == false) { // 只收集 AND 条件值
2818-
setPreparedValueList(new ArrayList<>());
2819-
}
2817+
List<Object> exprPreparedValues = getPreparedValueList();
2818+
if (isHaving == false) { // 只收集 AND 条件值
2819+
setPreparedValueList(new ArrayList<>());
2820+
}
28202821

28212822
Set<Entry<String, Object>> set = conditionMap.entrySet();
28222823

@@ -2838,9 +2839,9 @@ else if (c == ')') {
28382839
isItemFirst = false;
28392840
}
28402841

2841-
if (isHaving == false) { // 优先存放 AND 条件值
2842-
preparedValues.addAll(getPreparedValueList());
2843-
}
2842+
if (isHaving == false) { // 优先存放 AND 条件值
2843+
preparedValues.addAll(getPreparedValueList());
2844+
}
28442845

28452846
if (StringUtil.isEmpty(result, true)) {
28462847
result = andCond;
@@ -2854,12 +2855,12 @@ else if (StringUtil.isNotEmpty(andCond, true)) { // andCond 必须放后面,
28542855
}
28552856
}
28562857

2857-
if (isHaving == false) {
2858-
if (exprPreparedValues != null && exprPreparedValues.isEmpty() == false) {
2859-
preparedValues.addAll(exprPreparedValues); // 在 AND 条件值后存放表达式内的条件值
2860-
}
2861-
setPreparedValueList(preparedValues);
2862-
}
2858+
if (isHaving == false) {
2859+
if (exprPreparedValues != null && exprPreparedValues.isEmpty() == false) {
2860+
preparedValues.addAll(exprPreparedValues); // 在 AND 条件值后存放表达式内的条件值
2861+
}
2862+
setPreparedValueList(preparedValues);
2863+
}
28632864

28642865
return result;
28652866
}
@@ -2875,7 +2876,7 @@ else if (StringUtil.isNotEmpty(andCond, true)) { // andCond 必须放后面,
28752876
* @throws Exception
28762877
*/
28772878
public String getWhereString(boolean hasPrefix, RequestMethod method, Map<String, Object> where
2878-
, Map<String, List<String>> combine, List<Join> joinList, boolean verifyName) throws Exception {
2879+
, Map<String, List<String>> combine, List<Join> joinList, boolean verifyName) throws Exception {
28792880
Set<Entry<String, List<String>>> combineSet = combine == null ? null : combine.entrySet();
28802881
if (combineSet == null || combineSet.isEmpty()) {
28812882
Log.w(TAG, "getWhereString combineSet == null || combineSet.isEmpty() >> return \"\";");
@@ -3274,13 +3275,13 @@ public AbstractSQLConfig setPreparedValueList(List<Object> preparedValueList) {
32743275

32753276
//$ search <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<
32763277
/**search key match value
3277-
* @param key
3278-
* @param column
3279-
* @param value
3280-
* @param rawSQL
3281-
* @return {@link #getSearchString(String, String, Object[], int)}
3282-
* @throws IllegalArgumentException
3283-
*/
3278+
* @param key
3279+
* @param column
3280+
* @param value
3281+
* @param rawSQL
3282+
* @return {@link #getSearchString(String, String, Object[], int)}
3283+
* @throws IllegalArgumentException
3284+
*/
32843285
@JSONField(serialize = false)
32853286
public String getSearchString(String key, String column, Object value, String rawSQL) throws IllegalArgumentException {
32863287
if (rawSQL != null) {
@@ -3301,13 +3302,13 @@ public String getSearchString(String key, String column, Object value, String ra
33013302
return getSearchString(key, column, arr.toArray(), logic.getType());
33023303
}
33033304
/**search key match values
3304-
* @param key
3305-
* @param column
3306-
* @param values
3307-
* @param type
3308-
* @return LOGIC [ key LIKE 'values[i]' ]
3309-
* @throws IllegalArgumentException
3310-
*/
3305+
* @param key
3306+
* @param column
3307+
* @param values
3308+
* @param type
3309+
* @return LOGIC [ key LIKE 'values[i]' ]
3310+
* @throws IllegalArgumentException
3311+
*/
33113312
@JSONField(serialize = false)
33123313
public String getSearchString(String key, String column, Object[] values, int type) throws IllegalArgumentException {
33133314
if (values == null || values.length <= 0) {
@@ -3473,7 +3474,7 @@ public String getRegExpString(String key, String column, String value, boolean i
34733474
}
34743475

34753476

3476-
//~ regexp >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
3477+
//~ regexp >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
34773478

34783479

34793480

@@ -3509,8 +3510,8 @@ public String getBetweenString(String key, String column, Object value, String r
35093510
* @param key
35103511
* @param column
35113512
* @param values ['start,end'] TODO 在 '1,2' 和 ['1,2', '3,4'] 基础上新增支持 [1, 2] 和 [[1,2], [3,4]] ?
3512-
* @param type
3513-
* @return LOGIC [ key BETWEEN 'start' AND 'end' ]
3513+
* @param type
3514+
* @return LOGIC [ key BETWEEN 'start' AND 'end' ]
35143515
* @throws IllegalArgumentException
35153516
*/
35163517
@JSONField(serialize = false)
@@ -3538,13 +3539,13 @@ public String getBetweenString(String key, String column, Object[] values, int t
35383539
}
35393540

35403541
/**WHERE key BETWEEN 'start' AND 'end'
3541-
* @return key
3542-
* @param column
3543-
* @param start
3544-
* @param end
3545-
* @return LOGIC [ key BETWEEN 'start' AND 'end' ]
3546-
* @throws IllegalArgumentException
3547-
*/
3542+
* @return key
3543+
* @param column
3544+
* @param start
3545+
* @param end
3546+
* @return LOGIC [ key BETWEEN 'start' AND 'end' ]
3547+
* @throws IllegalArgumentException
3548+
*/
35483549
@JSONField(serialize = false)
35493550
public String getBetweenString(String key, String column, Object start, Object end) throws IllegalArgumentException {
35503551
if (JSON.isBooleanOrNumberOrString(start) == false || JSON.isBooleanOrNumberOrString(end) == false) {
@@ -3808,33 +3809,33 @@ public String getSubqueryString(Subquery subquery) throws Exception {
38083809
cfg.setPreparedValueList(new ArrayList<>());
38093810
String sql = (range == null || range.isEmpty() ? "" : range) + "(" + cfg.getSQL(isPrepared()) + ") ";
38103811

3811-
//// SELECT .. FROM(SELECT ..) .. WHERE .. 格式需要把子查询中的预编译值提前
3812-
//// 如果外查询 SELECT concat(`name`,?) 这种 SELECT 里也有预编译值,那就不能这样简单反向
3813-
//List<Object> subPvl = cfg.getPreparedValueList();
3814-
//if (subPvl != null && subPvl.isEmpty() == false) {
3815-
// List<Object> pvl = getPreparedValueList();
3816-
//
3817-
// if (pvl != null && pvl.isEmpty() == false) {
3818-
// subPvl.addAll(pvl);
3819-
// }
3820-
// setPreparedValueList(subPvl);
3821-
//}
3822-
3823-
List<Object> subPvl = cfg.getPreparedValueList();
3824-
if (subPvl != null && subPvl.isEmpty() == false) {
3825-
List<Object> pvl = getPreparedValueList();
3826-
3827-
if (pvl == null || pvl.isEmpty()) {
3828-
pvl = subPvl;
3829-
}
3830-
else {
3831-
pvl.addAll(subPvl);
3832-
}
3812+
//// SELECT .. FROM(SELECT ..) .. WHERE .. 格式需要把子查询中的预编译值提前
3813+
//// 如果外查询 SELECT concat(`name`,?) 这种 SELECT 里也有预编译值,那就不能这样简单反向
3814+
//List<Object> subPvl = cfg.getPreparedValueList();
3815+
//if (subPvl != null && subPvl.isEmpty() == false) {
3816+
// List<Object> pvl = getPreparedValueList();
3817+
//
3818+
// if (pvl != null && pvl.isEmpty() == false) {
3819+
// subPvl.addAll(pvl);
3820+
// }
3821+
// setPreparedValueList(subPvl);
3822+
//}
3823+
3824+
List<Object> subPvl = cfg.getPreparedValueList();
3825+
if (subPvl != null && subPvl.isEmpty() == false) {
3826+
List<Object> pvl = getPreparedValueList();
3827+
3828+
if (pvl == null || pvl.isEmpty()) {
3829+
pvl = subPvl;
3830+
}
3831+
else {
3832+
pvl.addAll(subPvl);
3833+
}
38333834

3834-
setPreparedValueList(pvl);
3835-
}
3835+
setPreparedValueList(pvl);
3836+
}
38363837

3837-
return sql;
3838+
return sql;
38383839
}
38393840

38403841
//key@:{} Subquery >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
@@ -4067,14 +4068,14 @@ protected String getOraclePageSql(String sql) {
40674068
* @throws Exception
40684069
*/
40694070
private static String getConditionString(String table, AbstractSQLConfig config) throws Exception {
4070-
Subquery from = config.getFrom();
4071-
if (from != null) {
4072-
table = config.getSubqueryString(from) + " AS " + config.getAliasWithQuote() + " ";
4073-
}
4071+
Subquery from = config.getFrom();
4072+
if (from != null) {
4073+
table = config.getSubqueryString(from) + " AS " + config.getAliasWithQuote() + " ";
4074+
}
40744075

4075-
String join = config.getJoinString();
4076+
String join = config.getJoinString();
40764077

4077-
String where = config.getWhereString(true);
4078+
String where = config.getWhereString(true);
40784079

40794080
//根据方法不同,聚合语句不同。GROUP BY 和 HAVING 可以加在 HEAD 上, HAVING 可以加在 PUT, DELETE 上,GET 全加,POST 全都不加
40804081
String aggregation;

0 commit comments

Comments
 (0)