|
@@ -155,7 +155,8 @@ public class DynamicDataSourceManager {
|
|
|
DB2,
|
|
DB2,
|
|
|
SQLITE,
|
|
SQLITE,
|
|
|
H2,
|
|
H2,
|
|
|
- MARIADB
|
|
|
|
|
|
|
+ MARIADB,
|
|
|
|
|
+ DM
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
private static final Map<DatabaseType, String> COUNT_SQL_TEMPLATES = new HashMap<>();
|
|
private static final Map<DatabaseType, String> COUNT_SQL_TEMPLATES = new HashMap<>();
|
|
@@ -165,6 +166,7 @@ public class DynamicDataSourceManager {
|
|
|
// 初始化计数SQL模板
|
|
// 初始化计数SQL模板
|
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.MYSQL, "SELECT COUNT(*) FROM (%s) AS total_count");
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.MYSQL, "SELECT COUNT(*) FROM (%s) AS total_count");
|
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.ORACLE, "SELECT COUNT(*) FROM (%s)");
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.ORACLE, "SELECT COUNT(*) FROM (%s)");
|
|
|
|
|
+ COUNT_SQL_TEMPLATES.put(DatabaseType.DM, "SELECT COUNT(*) FROM (%s)");
|
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.SQLSERVER, "SELECT COUNT(*) FROM (%s) AS total_count");
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.SQLSERVER, "SELECT COUNT(*) FROM (%s) AS total_count");
|
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.POSTGRESQL, "SELECT COUNT(*) FROM (%s) AS total_count");
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.POSTGRESQL, "SELECT COUNT(*) FROM (%s) AS total_count");
|
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.DB2, "SELECT COUNT(*) FROM (%s)");
|
|
COUNT_SQL_TEMPLATES.put(DatabaseType.DB2, "SELECT COUNT(*) FROM (%s)");
|
|
@@ -225,6 +227,7 @@ public class DynamicDataSourceManager {
|
|
|
return String.format(template, originalSql, start, pageSize);
|
|
return String.format(template, originalSql, start, pageSize);
|
|
|
|
|
|
|
|
case ORACLE:
|
|
case ORACLE:
|
|
|
|
|
+ case DM:
|
|
|
int end = pageNum * pageSize;
|
|
int end = pageNum * pageSize;
|
|
|
return String.format(template, originalSql, end, start);
|
|
return String.format(template, originalSql, end, start);
|
|
|
|
|
|
|
@@ -271,6 +274,8 @@ public class DynamicDataSourceManager {
|
|
|
return DatabaseType.H2;
|
|
return DatabaseType.H2;
|
|
|
} else if (jdbcType.startsWith("mariadb")) {
|
|
} else if (jdbcType.startsWith("mariadb")) {
|
|
|
return DatabaseType.MARIADB;
|
|
return DatabaseType.MARIADB;
|
|
|
|
|
+ } else if (jdbcType.startsWith("dm")) {
|
|
|
|
|
+ return DatabaseType.DM;
|
|
|
} else {
|
|
} else {
|
|
|
throw new IllegalArgumentException("无法识别的数据库连接URL: " + jdbcType);
|
|
throw new IllegalArgumentException("无法识别的数据库连接URL: " + jdbcType);
|
|
|
}
|
|
}
|