From 398959d931ea0f028e61a8d4d0ce55baea4ddfaa Mon Sep 17 00:00:00 2001
From: The-Gamer-01 <58755323+The-Gamer-01@users.noreply.github.com>
Date: Fri, 30 Sep 2022 16:54:08 +0800
Subject: [PATCH] [ISSUE #8312]Finish the datasource plugin. (#9226)
* [ISSUE #8312]Finish the datasource plugin.
* [ISSUE #8312]Update derby PersistService impl.
---
config/pom.xml | 5 +
.../EmbeddedPaginationHelperImpl.java | 20 +-
.../EmbeddedStoragePersistServiceImpl.java | 841 ++++++++---------
.../ExternalStoragePaginationHelperImpl.java | 56 +-
.../ExternalStoragePersistServiceImpl.java | 885 ++++++++----------
.../{manager => }/MapperManager.java | 39 +-
.../DataSourceConstant.java} | 18 +-
.../derby/ConfigInfoAggrMapperByDerby.java | 10 +-
.../derby/ConfigInfoBetaMapperByDerby.java | 10 +-
.../impl/derby/ConfigInfoMapperByDerby.java | 154 ++-
.../derby/ConfigInfoTagMapperByDerby.java | 10 +-
.../ConfigInfoTagsRelationMapperByDerby.java | 33 +-
.../derby/HistoryConfigInfoMapperByDerby.java | 11 +-
.../mysql/ConfigInfoAggrMapperByMySql.java | 8 +-
.../mysql/ConfigInfoBetaMapperByMySql.java | 8 +-
.../impl/mysql/ConfigInfoMapperByMySql.java | 77 +-
.../mysql/ConfigInfoTagMapperByMySql.java | 8 +-
.../ConfigTagsRelationMapperByMySql.java | 32 +-
.../mysql/HistoryConfigInfoMapperByMySql.java | 10 +-
.../mapper/ConfigInfoAggrMapper.java | 4 +-
.../mapper/ConfigInfoBetaMapper.java | 4 +-
.../datasource/mapper/ConfigInfoMapper.java | 74 +-
.../mapper/ConfigInfoTagMapper.java | 4 +-
.../mapper/ConfigTagsRelationMapper.java | 22 +-
.../mapper/HistoryConfigInfoMapper.java | 4 +-
.../plugin/datasource/mapper/Mapper.java | 6 +
...baba.nacos.plugin.datasource.mapper.Mapper | 29 +
27 files changed, 1188 insertions(+), 1194 deletions(-)
rename plugin/datasource/src/main/java/com/alibaba/nacos/plugin/datasource/{manager => }/MapperManager.java (61%)
rename plugin/datasource/src/main/java/com/alibaba/nacos/plugin/datasource/{manager/InitAndClosable.java => constants/DataSourceConstant.java} (70%)
create mode 100644 plugin/datasource/src/main/resources/META-INF/services/com.alibaba.nacos.plugin.datasource.mapper.Mapper
diff --git a/config/pom.xml b/config/pom.xml
index ee3356b8a56..26d396c9530 100644
--- a/config/pom.xml
+++ b/config/pom.xml
@@ -117,6 +117,11 @@
org.yaml
snakeyaml
+
+ com.alibaba.nacos
+ nacos-datasource-plugin
+ 2.1.1
+
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedPaginationHelperImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedPaginationHelperImpl.java
index 452001c340f..c1f06a2a41d 100644
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedPaginationHelperImpl.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedPaginationHelperImpl.java
@@ -85,10 +85,7 @@ public Page fetchPage(final String sqlCountRows, final String sqlFetchRows, f
return page;
}
- final int startRow = (pageNo - 1) * pageSize;
- String selectSql = sqlFetchRows + " OFFSET " + startRow + " ROWS FETCH NEXT " + pageSize + " ROWS ONLY";
-
- List result = databaseOperate.queryMany(selectSql, args, rowMapper);
+ List result = databaseOperate.queryMany(sqlFetchRows, args, rowMapper);
for (E item : result) {
page.getPageItems().add(item);
}
@@ -123,8 +120,7 @@ public Page fetchPageLimit(final String sqlCountRows, final String sqlFetchRo
return page;
}
- String selectSql = sqlFetchRows.replaceAll("(?i)LIMIT \\?,\\?", "OFFSET ? ROWS FETCH NEXT ? ROWS ONLY");
- List result = databaseOperate.queryMany(selectSql, args, rowMapper);
+ List result = databaseOperate.queryMany(sqlFetchRows, args, rowMapper);
for (E item : result) {
page.getPageItems().add(item);
}
@@ -159,9 +155,7 @@ public Page fetchPageLimit(final String sqlCountRows, final Object[] args1, f
return page;
}
- String selectSql = sqlFetchRows.replaceAll("(?i)LIMIT \\?,\\?", "OFFSET ? ROWS FETCH NEXT ? ROWS ONLY");
-
- List result = databaseOperate.queryMany(selectSql, args2, rowMapper);
+ List result = databaseOperate.queryMany(sqlFetchRows, args2, rowMapper);
for (E item : result) {
page.getPageItems().add(item);
}
@@ -177,9 +171,7 @@ public Page fetchPageLimit(final String sqlFetchRows, final Object[] args, fi
// Create Page object
final Page page = new Page<>();
- String selectSql = sqlFetchRows.replaceAll("(?i)LIMIT \\?,\\?", "OFFSET ? ROWS FETCH NEXT ? ROWS ONLY");
-
- List result = databaseOperate.queryMany(selectSql, args, rowMapper);
+ List result = databaseOperate.queryMany(sqlFetchRows, args, rowMapper);
for (E item : result) {
page.getPageItems().add(item);
}
@@ -188,9 +180,7 @@ public Page fetchPageLimit(final String sqlFetchRows, final Object[] args, fi
@Override
public void updateLimit(final String sql, final Object[] args) {
- String sqlUpdate = sql.replaceAll("LIMIT \\?", "OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY");
-
- EmbeddedStorageContextUtils.addSqlContext(sqlUpdate, args);
+ EmbeddedStorageContextUtils.addSqlContext(sql, args);
try {
databaseOperate.update(EmbeddedStorageContextUtils.getCurrentSqlContext());
} finally {
diff --git a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedStoragePersistServiceImpl.java b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedStoragePersistServiceImpl.java
index 7ce0361d90c..584dc4c69ce 100755
--- a/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedStoragePersistServiceImpl.java
+++ b/config/src/main/java/com/alibaba/nacos/config/server/service/repository/embedded/EmbeddedStoragePersistServiceImpl.java
@@ -49,7 +49,16 @@
import com.alibaba.nacos.config.server.utils.LogUtil;
import com.alibaba.nacos.config.server.utils.ParamUtils;
import com.alibaba.nacos.core.distributed.id.IdGeneratorManager;
+import com.alibaba.nacos.plugin.datasource.MapperManager;
+import com.alibaba.nacos.plugin.datasource.constants.TableConstant;
+import com.alibaba.nacos.plugin.datasource.mapper.ConfigInfoAggrMapper;
+import com.alibaba.nacos.plugin.datasource.mapper.ConfigInfoBetaMapper;
+import com.alibaba.nacos.plugin.datasource.mapper.ConfigInfoMapper;
+import com.alibaba.nacos.plugin.datasource.mapper.ConfigInfoTagMapper;
+import com.alibaba.nacos.plugin.datasource.mapper.ConfigTagsRelationMapper;
+import com.alibaba.nacos.plugin.datasource.mapper.HistoryConfigInfoMapper;
import com.alibaba.nacos.plugin.encryption.handler.EncryptionHandler;
+import com.alibaba.nacos.sys.env.EnvUtil;
import org.apache.commons.collections.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils;
import org.springframework.context.annotation.Conditional;
@@ -61,6 +70,7 @@
import java.io.IOException;
import java.sql.Timestamp;
import java.util.ArrayList;
+import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
@@ -121,6 +131,24 @@ public class EmbeddedStoragePersistServiceImpl implements PersistService {
private final IdGeneratorManager idGeneratorManager;
+ private MapperManager mapperManager;
+
+ private String dataSource;
+
+ private static final String DATASOURCE_PLATFORM_PROPERTY = "spring.datasource.platform";
+
+ private static final String DEFAULT_DATASOURCE_PLATFORM = "derby";
+
+ private static final String DATA_ID = "dataId";
+
+ private static final String GROUP = "group";
+
+ private static final String APP_NAME = "appName";
+
+ private static final String CONTENT = "content";
+
+ private static final String TENANT = "tenant_id";
+
/**
* The constructor sets the dependency injection order.
*
@@ -132,6 +160,8 @@ public EmbeddedStoragePersistServiceImpl(DatabaseOperate databaseOperate, IdGene
this.idGeneratorManager = idGeneratorManager;
NotifyCenter.registerToSharePublisher(DerbyImportEvent.class);
+ mapperManager = MapperManager.instance();
+ dataSource = EnvUtil.getProperty(DATASOURCE_PLATFORM_PROPERTY, DEFAULT_DATASOURCE_PLATFORM);
}
/**
@@ -226,10 +256,8 @@ public void addConfigInfo4Beta(ConfigInfo configInfo, String betaIps, String src
configInfo.setTenant(tenantTmp);
try {
String md5 = MD5Utils.md5Hex(configInfo.getContent(), Constants.ENCODE);
-
- final String sql =
- "INSERT INTO config_info_beta(data_id,group_id,tenant_id,app_name,content,md5,beta_ips,src_ip,"
- + "src_user,gmt_create,gmt_modified,encrypted_data_key) VALUES(?,?,?,?,?,?,?,?,?,?,?,?)";
+ ConfigInfoBetaMapper configInfoBetaMapper = (ConfigInfoBetaMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_BETA).get();
+ final String sql = configInfoBetaMapper.addConfigInfo4Beta();
final Object[] args = new Object[] {configInfo.getDataId(), configInfo.getGroup(), tenantTmp, appNameTmp,
configInfo.getContent(), md5, betaIps, srcIp, srcUser, time, time, encryptedDataKey};
@@ -253,10 +281,9 @@ public void addConfigInfo4Tag(ConfigInfo configInfo, String tag, String srcIp, S
try {
String md5 = MD5Utils.md5Hex(configInfo.getContent(), Constants.ENCODE);
-
- final String sql =
- "INSERT INTO config_info_tag(data_id,group_id,tenant_id,tag_id,app_name,content,md5,src_ip,src_user,"
- + "gmt_create,gmt_modified) VALUES(?,?,?,?,?,?,?,?,?,?,?)";
+ ConfigInfoTagMapper configInfoTagMapper = (ConfigInfoTagMapper) mapperManager.findMapper(dataSource,
+ TableConstant.CONFIG_INFO_TAG).get();
+ final String sql = configInfoTagMapper.addConfigInfo4Tag();
final Object[] args = new Object[] {configInfo.getDataId(), configInfo.getGroup(), tenantTmp, tagTmp,
appNameTmp, configInfo.getContent(), md5, srcIp, srcUser, time, time};
@@ -356,8 +383,8 @@ public void updateConfigInfo4Beta(ConfigInfo configInfo, String betaIps, String
configInfo.setTenant(tenantTmp);
try {
String md5 = MD5Utils.md5Hex(configInfo.getContent(), Constants.ENCODE);
-
- final String sql = "UPDATE config_info_beta SET content=?,md5=?,beta_ips=?,src_ip=?,src_user=?,gmt_modified=?,app_name=?,encrypted_data_key=? WHERE data_id=? AND group_id=? AND tenant_id=?";
+ ConfigInfoBetaMapper configInfoBetaMapper = (ConfigInfoBetaMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_BETA).get();
+ final String sql = configInfoBetaMapper.updateConfigInfo4Beta();
final Object[] args = new Object[] {configInfo.getContent(), md5, betaIps, srcIp, srcUser, time, appNameTmp,
encryptedDataKey, configInfo.getDataId(), configInfo.getGroup(), tenantTmp};
@@ -381,7 +408,8 @@ public boolean updateConfigInfo4BetaCas(ConfigInfo configInfo, String betaIps, S
try {
String md5 = MD5Utils.md5Hex(configInfo.getContent(), Constants.ENCODE);
- final String sql = "UPDATE config_info_beta SET content=?,md5=?,beta_ips=?,src_ip=?,src_user=?,gmt_modified=?,app_name=? WHERE data_id=? AND group_id=? AND tenant_id=? AND (md5=? OR md5 IS NULL OR md5='')";
+ ConfigInfoBetaMapper configInfoBetaMapper = (ConfigInfoBetaMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_BETA).get();
+ final String sql = configInfoBetaMapper.updateConfigInfo4BetaCas();
final Object[] args = new Object[] {configInfo.getContent(), md5, betaIps, srcIp, srcUser, time, appNameTmp,
configInfo.getDataId(), configInfo.getGroup(), tenantTmp, configInfo.getMd5()};
@@ -407,7 +435,8 @@ public void updateConfigInfo4Tag(ConfigInfo configInfo, String tag, String srcIp
try {
String md5 = MD5Utils.md5Hex(configInfo.getContent(), Constants.ENCODE);
- final String sql = "UPDATE config_info_tag SET content=?, md5 = ?, src_ip=?,src_user=?,gmt_modified=?,app_name=? WHERE data_id=? AND group_id=? AND tenant_id=? AND tag_id=?";
+ ConfigInfoTagMapper configInfoTagMapper = (ConfigInfoTagMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_TAG).get();
+ final String sql = configInfoTagMapper.updateConfigInfo4Tag();
final Object[] args = new Object[] {configInfo.getContent(), md5, srcIp, srcUser, time, appNameTmp,
configInfo.getDataId(), configInfo.getGroup(), tenantTmp, tagTmp};
@@ -431,8 +460,8 @@ public boolean updateConfigInfo4TagCas(ConfigInfo configInfo, String tag, String
try {
String md5 = MD5Utils.md5Hex(configInfo.getContent(), Constants.ENCODE);
-
- final String sql = "UPDATE config_info_tag SET content=?, md5 = ?, src_ip=?,src_user=?,gmt_modified=?,app_name=? WHERE data_id=? AND group_id=? AND tenant_id=? AND tag_id=? AND (md5=? OR md5 IS NULL OR md5='')";
+ ConfigInfoTagMapper configInfoTagMapper = (ConfigInfoTagMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_TAG).get();
+ final String sql = configInfoTagMapper.updateConfigInfo4TagCas();
final Object[] args = new Object[] {configInfo.getContent(), md5, srcIp, srcUser, time, appNameTmp,
configInfo.getDataId(), configInfo.getGroup(), tenantTmp, tagTmp, configInfo.getMd5()};
@@ -492,8 +521,9 @@ public boolean insertOrUpdateTagCas(final ConfigInfo configInfo, final String ta
public void updateMd5(String dataId, String group, String tenant, String md5, Timestamp lastTime) {
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
try {
-
- final String sql = "UPDATE config_info SET md5 = ? WHERE data_id=? AND group_id=? AND tenant_id=? AND gmt_modified=?";
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+
+ final String sql = configInfoMapper.updateMd5();
final Object[] args = new Object[] {md5, dataId, group, tenantTmp, lastTime};
EmbeddedStorageContextUtils.addSqlContext(sql, args);
@@ -617,7 +647,8 @@ public void removeConfigInfo4Beta(final String dataId, final String group, final
ConfigInfo configInfo = findConfigInfo4Beta(dataId, group, tenant);
if (configInfo != null) {
try {
- final String sql = "DELETE FROM config_info_beta WHERE data_id=? AND group_id=? AND tenant_id=?";
+ ConfigInfoBetaMapper configInfoBetaMapper = (ConfigInfoBetaMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_BETA).get();
+ final String sql = configInfoBetaMapper.removeConfigInfo4Beta();
final Object[] args = new Object[] {dataId, group, tenantTmp};
EmbeddedStorageContextUtils.onDeleteConfigBetaInfo(tenantTmp, group, dataId,
@@ -643,9 +674,10 @@ public boolean addAggrConfigInfo(final String dataId, final String group, String
String contentTmp = StringUtils.isBlank(content) ? StringUtils.EMPTY : content;
final Timestamp now = new Timestamp(System.currentTimeMillis());
- final String select = "SELECT content FROM config_info_aggr WHERE data_id = ? AND group_id = ? AND tenant_id = ? AND datum_id = ?";
- final String insert = "INSERT INTO config_info_aggr(data_id, group_id, tenant_id, datum_id, app_name, content, gmt_modified) VALUES(?,?,?,?,?,?,?) ";
- final String update = "UPDATE config_info_aggr SET content = ? , gmt_modified = ? WHERE data_id = ? AND group_id = ? AND tenant_id = ? AND datum_id = ?";
+ ConfigInfoAggrMapper configInfoAggrMapper = (ConfigInfoAggrMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_AGGR).get();
+ final String select = configInfoAggrMapper.select();
+ final String insert = configInfoAggrMapper.insert();
+ final String update = configInfoAggrMapper.update();
String dbContent = databaseOperate.queryOne(select, new Object[] {dataId, group, tenantTmp, datumId},
String.class);
@@ -674,7 +706,8 @@ public void removeSingleAggrConfigInfo(final String dataId, final String group,
final String datumId) {
final String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
- final String sql = "DELETE FROM config_info_aggr WHERE data_id=? AND group_id=? AND tenant_id=? AND datum_id=?";
+ ConfigInfoAggrMapper configInfoAggrMapper = (ConfigInfoAggrMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_AGGR).get();
+ final String sql = configInfoAggrMapper.removeSingleAggrConfigInfo();
final Object[] args = new Object[] {dataId, group, tenantTmp, datumId};
EmbeddedStorageContextUtils.addSqlContext(sql, args);
@@ -691,8 +724,9 @@ public void removeSingleAggrConfigInfo(final String dataId, final String group,
@Override
public void removeAggrConfigInfo(final String dataId, final String group, final String tenant) {
final String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
-
- final String sql = "DELETE FROM config_info_aggr WHERE data_id=? AND group_id=? AND tenant_id=?";
+
+ ConfigInfoAggrMapper configInfoAggrMapper = (ConfigInfoAggrMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_AGGR).get();
+ final String sql = configInfoAggrMapper.removeAggrConfigInfo();
final Object[] args = new Object[] {dataId, group, tenantTmp};
EmbeddedStorageContextUtils.addSqlContext(sql, args);
@@ -715,9 +749,9 @@ public boolean batchRemoveAggr(final String dataId, final String group, final St
datumString.append('\'').append(datum).append("',");
}
datumString.deleteCharAt(datumString.length() - 1);
+ ConfigInfoAggrMapper configInfoAggrMapper = (ConfigInfoAggrMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_AGGR).get();
final String sql =
- "DELETE FROM config_info_aggr WHERE data_id=? AND group_id=? AND tenant_id=? AND datum_id IN ("
- + datumString.toString() + ")";
+ configInfoAggrMapper.batchRemoveAggr(datumList);
final Object[] args = new Object[] {dataId, group, tenantTmp};
EmbeddedStorageContextUtils.addSqlContext(sql, args);
@@ -734,15 +768,16 @@ public boolean batchRemoveAggr(final String dataId, final String group, final St
@Override
public void removeConfigHistory(final Timestamp startTime, final int limitSize) {
- String sql = "DELETE FROM his_config_info WHERE id IN( "
- + "SELECT id FROM his_config_info WHERE gmt_modified < ? OFFSET 0 ROWS FETCH NEXT ? ROWS ONLY)";
+ HistoryConfigInfoMapper historyConfigInfoMapper = (HistoryConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.HIS_CONFIG_INFO).get();
+ String sql = historyConfigInfoMapper.removeConfigHistory();
PaginationHelper helper = createPaginationHelper();
helper.updateLimit(sql, new Object[] {startTime, limitSize});
}
@Override
public int findConfigHistoryCountByTime(final Timestamp startTime) {
- String sql = "SELECT count(*) FROM his_config_info WHERE gmt_modified < ?";
+ HistoryConfigInfoMapper historyConfigInfoMapper = (HistoryConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.HIS_CONFIG_INFO).get();
+ String sql = historyConfigInfoMapper.findConfigHistoryCountByTime();
Integer result = databaseOperate.queryOne(sql, new Object[] {startTime}, Integer.class);
if (result == null) {
throw new IllegalArgumentException("configInfoBetaCount error");
@@ -752,7 +787,8 @@ public int findConfigHistoryCountByTime(final Timestamp startTime) {
@Override
public long findConfigMaxId() {
- String sql = "SELECT max(id) FROM config_info";
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ String sql = configInfoMapper.findConfigMaxId();
return Optional.ofNullable(databaseOperate.queryOne(sql, Long.class)).orElse(0L);
}
@@ -785,8 +821,8 @@ public boolean replaceAggr(final String dataId, final String group, final String
removeAggrConfigInfo(dataId, group, tenant);
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
- final String sql = "INSERT INTO config_info_aggr(data_id, group_id, tenant_id, datum_id, app_name, "
- + "content, gmt_modified) VALUES(?,?,?,?,?,?,?) ";
+ ConfigInfoAggrMapper configInfoAggrMapper = (ConfigInfoAggrMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_AGGR).get();
+ final String sql = configInfoAggrMapper.replaceAggr();
for (Entry datumEntry : datumMap.entrySet()) {
final Object[] args = new Object[] {dataId, group, tenantTmp, datumEntry.getKey(), appNameTmp,
datumEntry.getValue(), new Timestamp(System.currentTimeMillis())};
@@ -807,14 +843,16 @@ public boolean replaceAggr(final String dataId, final String group, final String
@Override
public List findAllDataIdAndGroup() {
- String sql = "SELECT DISTINCT data_id, group_id FROM config_info";
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ String sql = configInfoMapper.findAllDataIdAndGroup();
return databaseOperate.queryMany(sql, EMPTY_ARRAY, CONFIG_INFO_ROW_MAPPER);
}
@Override
public ConfigInfoBetaWrapper findConfigInfo4Beta(final String dataId, final String group, final String tenant) {
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
- final String sql = "SELECT id,data_id,group_id,tenant_id,app_name,content,beta_ips,encrypted_data_key FROM config_info_beta WHERE data_id=? AND group_id=? AND tenant_id=?";
+ ConfigInfoBetaMapper configInfoBetaMapper = (ConfigInfoBetaMapper) mapperManager.findMapper(dataSource, TableConstant. CONFIG_INFO_BETA).get();
+ final String sql = configInfoBetaMapper.findConfigInfo4Beta();
return databaseOperate.queryOne(sql, new Object[] {dataId, group, tenantTmp},
CONFIG_INFO_BETA_WRAPPER_ROW_MAPPER);
@@ -826,8 +864,8 @@ public ConfigInfoTagWrapper findConfigInfo4Tag(final String dataId, final String
final String tag) {
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
String tagTmp = StringUtils.isBlank(tag) ? StringUtils.EMPTY : tag.trim();
-
- final String sql = "SELECT id,data_id,group_id,tenant_id,tag_id,app_name,content FROM config_info_tag WHERE data_id=? AND group_id=? AND tenant_id=? AND tag_id=?";
+ ConfigInfoTagMapper configInfoTagMapper = (ConfigInfoTagMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_TAG).get();
+ final String sql = configInfoTagMapper.findConfigInfo4Tag();
return databaseOperate.queryOne(sql, new Object[] {dataId, group, tenantTmp, tagTmp},
CONFIG_INFO_TAG_WRAPPER_ROW_MAPPER);
@@ -837,7 +875,8 @@ public ConfigInfoTagWrapper findConfigInfo4Tag(final String dataId, final String
public ConfigInfo findConfigInfoApp(final String dataId, final String group, final String tenant,
final String appName) {
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
- final String sql = "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE data_id=? AND group_id=? AND tenant_id=? AND app_name=?";
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ final String sql = configInfoMapper.findConfigInfoApp();
return databaseOperate.queryOne(sql, new Object[] {dataId, group, tenantTmp, appName}, CONFIG_INFO_ROW_MAPPER);
@@ -853,33 +892,21 @@ public ConfigInfo findConfigInfoAdvanceInfo(final String dataId, final String gr
paramList.add(dataId);
paramList.add(group);
paramList.add(tenantTmp);
-
- StringBuilder sql = new StringBuilder(
- "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE data_id=? AND group_id=? AND tenant_id=? ");
+
+ String sql = null;
+ Map params = new HashMap<>(16);
+ if (StringUtils.isNotBlank(appName)) {
+ paramList.add(appName);
+ params.put(APP_NAME, APP_NAME);
+ }
if (StringUtils.isNotBlank(configTags)) {
- sql = new StringBuilder(
- "SELECT a.id,a.data_id,a.group_id,a.tenant_id,a.app_name,a.content FROM config_info a LEFT JOIN "
- + "config_tags_relation b ON a.id=b.id WHERE a.data_id=? AND a.group_id=? AND a.tenant_id=? ");
- sql.append(" AND b.tag_name IN (");
String[] tagArr = configTags.split(",");
- for (int i = 0; i < tagArr.length; i++) {
- if (i != 0) {
- sql.append(", ");
- }
- sql.append('?');
- paramList.add(tagArr[i]);
- }
- sql.append(") ");
-
- if (StringUtils.isNotBlank(appName)) {
- sql.append(" AND a.app_name=? ");
- paramList.add(appName);
- }
+ paramList.addAll(Arrays.asList(tagArr));
+ ConfigTagsRelationMapper configTagsRelationMapper = (ConfigTagsRelationMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_TAGS_RELATION).get();
+ sql = configTagsRelationMapper.findConfigInfoAdvanceInfo(params, paramList.size());
} else {
- if (StringUtils.isNotBlank(appName)) {
- sql.append(" AND app_name=? ");
- paramList.add(appName);
- }
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ sql = configInfoMapper.findConfigInfoAdvanceInfo(params);
}
return databaseOperate.queryOne(sql.toString(), paramList.toArray(), CONFIG_INFO_ROW_MAPPER);
@@ -887,7 +914,8 @@ public ConfigInfo findConfigInfoAdvanceInfo(final String dataId, final String gr
@Override
public ConfigInfoBase findConfigInfoBase(final String dataId, final String group) {
- final String sql = "SELECT id,data_id,group_id,content FROM config_info WHERE data_id=? AND group_id=? AND tenant_id=?";
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ final String sql = configInfoMapper.findConfigInfoBase();
return databaseOperate.queryOne(sql, new Object[] {dataId, group, StringUtils.EMPTY},
CONFIG_INFO_BASE_ROW_MAPPER);
@@ -895,16 +923,16 @@ public ConfigInfoBase findConfigInfoBase(final String dataId, final String group
@Override
public ConfigInfo findConfigInfo(long id) {
- final String sql = "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE id=?";
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ final String sql = configInfoMapper.findConfigInfoById();
return databaseOperate.queryOne(sql, new Object[] {id}, CONFIG_INFO_ROW_MAPPER);
}
@Override
public ConfigInfoWrapper findConfigInfo(final String dataId, final String group, final String tenant) {
final String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
- final String sql =
- "SELECT id,data_id,group_id,tenant_id,app_name,content,md5,type,encrypted_data_key FROM config_info "
- + " WHERE data_id=? AND group_id=? AND tenant_id=?";
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ final String sql = configInfoMapper.findConfigInfoByDataId2Group2Tenant();
final Object[] args = new Object[] {dataId, group, tenantTmp};
return databaseOperate.queryOne(sql, args, CONFIG_INFO_WRAPPER_ROW_MAPPER);
@@ -915,9 +943,10 @@ public Page findConfigInfoByDataId(final int pageNo, final int pageS
final String tenant) {
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
PaginationHelper helper = createPaginationHelper();
- return helper.fetchPage("SELECT count(*) FROM config_info WHERE data_id=? AND tenant_id=?",
- "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE data_id=? AND "
- + "tenant_id=?", new Object[] {dataId, tenantTmp}, pageNo, pageSize, CONFIG_INFO_ROW_MAPPER);
+ final int startRow = (pageNo - 1) * pageSize;
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ return helper.fetchPage(configInfoMapper.findConfigInfoByDataIdCountRows(),
+ configInfoMapper.findConfigInfoByDataIdFetchRows(startRow, pageSize), new Object[] {dataId, tenantTmp}, pageNo, pageSize, CONFIG_INFO_ROW_MAPPER);
}
@Override
@@ -925,9 +954,10 @@ public Page findConfigInfoByDataIdAndApp(final int pageNo, final int
final String tenant, final String appName) {
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
PaginationHelper helper = createPaginationHelper();
- return helper.fetchPage("SELECT count(*) FROM config_info WHERE data_id=? AND tenant_id=? AND app_name=?",
- "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE data_id=? AND "
- + "tenant_id=? AND app_name=?", new Object[] {dataId, tenantTmp, appName}, pageNo, pageSize,
+ final int startRow = (pageNo - 1) * pageSize;
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ return helper.fetchPage(configInfoMapper.findConfigInfoByDataIdAndAppCountRows(),
+ configInfoMapper.findConfigInfoByDataIdAndAppFetchRows(startRow, pageSize), new Object[] {dataId, tenantTmp, appName}, pageNo, pageSize,
CONFIG_INFO_ROW_MAPPER);
}
@@ -937,46 +967,27 @@ public Page findConfigInfoByDataIdAndAdvance(final int pageNo, final
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
final String appName = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("appName");
final String configTags = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("config_tags");
- StringBuilder sqlCount = new StringBuilder("SELECT count(*) FROM config_info WHERE data_id=? AND tenant_id=? ");
- StringBuilder sql = new StringBuilder(
- "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE data_id=? AND tenant_id=? ");
+ String sql = null;
+ String sqlCount = null;
+ Map paramsMap = new HashMap<>(16);
List paramList = new ArrayList<>();
paramList.add(dataId);
paramList.add(tenantTmp);
+ if (StringUtils.isNotBlank(appName)) {
+ paramList.add(appName);
+ paramsMap.put(APP_NAME, APP_NAME);
+ }
+ final int startRow = (pageNo - 1) * pageSize;
if (StringUtils.isNotBlank(configTags)) {
- sqlCount = new StringBuilder(
- "SELECT count(*) FROM config_info a LEFT JOIN config_tags_relation b ON a.id=b.id WHERE a.data_id=? AND a.tenant_id=? ");
-
- sql = new StringBuilder(
- "SELECT a.id,a.data_id,a.group_id,a.tenant_id,a.app_name,a.content FROM config_info a LEFT JOIN "
- + "config_tags_relation b ON a.id=b.id WHERE a.data_id=? AND a.tenant_id=? ");
-
- sqlCount.append(" AND b.tag_name IN (");
- sql.append(" AND b.tag_name IN (");
String[] tagArr = configTags.split(",");
- for (int i = 0; i < tagArr.length; i++) {
- if (i != 0) {
- sqlCount.append(", ");
- sql.append(", ");
- }
- sqlCount.append('?');
- sql.append('?');
- paramList.add(tagArr[i]);
- }
- sqlCount.append(") ");
- sql.append(") ");
-
- if (StringUtils.isNotBlank(appName)) {
- sqlCount.append(" AND a.app_name=? ");
- sql.append(" AND a.app_name=? ");
- paramList.add(appName);
- }
+ paramList.addAll(Arrays.asList(tagArr));
+ ConfigTagsRelationMapper configTagsRelationMapper = (ConfigTagsRelationMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_TAGS_RELATION).get();
+ sqlCount = configTagsRelationMapper.findConfigInfoByDataIdAndAdvanceCountRows(paramsMap, paramList.size());
+ sql = configTagsRelationMapper.findConfigInfoByDataIdAndAdvanceFetchRows(paramsMap, paramList.size(), startRow, pageSize);
} else {
- if (StringUtils.isNotBlank(appName)) {
- sqlCount.append(" AND app_name=? ");
- sql.append(" AND app_name=? ");
- paramList.add(appName);
- }
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ sqlCount = configInfoMapper.findConfigInfoByDataIdAndAdvanceCountRows(paramsMap);
+ sql = configInfoMapper.findConfigInfoByDataIdAndAdvanceFetchRows(paramsMap, startRow, pageSize);
}
PaginationHelper helper = createPaginationHelper();
@@ -990,58 +1001,37 @@ public Page findConfigInfo4Page(final int pageNo, final int pageSize
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
final String appName = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("appName");
final String configTags = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("config_tags");
- String sqlCount = "SELECT count(*) FROM config_info";
- String sql = "SELECT id,data_id,group_id,tenant_id,app_name,content,type FROM config_info";
- StringBuilder where = new StringBuilder(" WHERE ");
+ String sql = null;
+ String sqlCount = null;
List paramList = new ArrayList<>();
paramList.add(tenantTmp);
+ Map paramsMap = new HashMap<>(16);
+ if (StringUtils.isNotBlank(dataId)) {
+ paramList.add(dataId);
+ paramsMap.put(DATA_ID, DATA_ID);
+ }
+ if (StringUtils.isNotBlank(group)) {
+ paramList.add(group);
+ paramsMap.put(GROUP, GROUP);
+ }
+ if (StringUtils.isNotBlank(appName)) {
+ paramList.add(appName);
+ paramsMap.put(APP_NAME, APP_NAME);
+ }
+ final int startRow = (pageNo - 1) * pageSize;
if (StringUtils.isNotBlank(configTags)) {
- sqlCount = "SELECT count(*) FROM config_info a LEFT JOIN config_tags_relation b ON a.id=b.id";
- sql = "SELECT a.id,a.data_id,a.group_id,a.tenant_id,a.app_name,a.content FROM config_info a LEFT JOIN "
- + "config_tags_relation b ON a.id=b.id";
-
- where.append(" a.tenant_id=? ");
-
- if (StringUtils.isNotBlank(dataId)) {
- where.append(" AND a.data_id=? ");
- paramList.add(dataId);
- }
- if (StringUtils.isNotBlank(group)) {
- where.append(" AND a.group_id=? ");
- paramList.add(group);
- }
- if (StringUtils.isNotBlank(appName)) {
- where.append(" AND a.app_name=? ");
- paramList.add(appName);
- }
-
- where.append(" AND b.tag_name IN (");
String[] tagArr = configTags.split(",");
- for (int i = 0; i < tagArr.length; i++) {
- if (i != 0) {
- where.append(", ");
- }
- where.append('?');
- paramList.add(tagArr[i]);
- }
- where.append(") ");
+ paramList.addAll(Arrays.asList(tagArr));
+ ConfigTagsRelationMapper configTagsRelationMapper = (ConfigTagsRelationMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_TAGS_RELATION).get();
+ sqlCount = configTagsRelationMapper.findConfigInfo4PageCountRows(paramsMap, paramList.size());
+ sql = configTagsRelationMapper.findConfigInfo4PageFetchRows(paramsMap, paramList.size(), startRow, pageSize);
} else {
- where.append(" tenant_id=? ");
- if (StringUtils.isNotBlank(dataId)) {
- where.append(" AND data_id=? ");
- paramList.add(dataId);
- }
- if (StringUtils.isNotBlank(group)) {
- where.append(" AND group_id=? ");
- paramList.add(group);
- }
- if (StringUtils.isNotBlank(appName)) {
- where.append(" AND app_name=? ");
- paramList.add(appName);
- }
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ sqlCount = configInfoMapper.findConfigInfo4PageCountRows(paramsMap);
+ sql = configInfoMapper.findConfigInfo4PageFetchRows(paramsMap, startRow, pageSize);
}
PaginationHelper helper = createPaginationHelper();
- Page page = helper.fetchPage(sqlCount + where, sql + where, paramList.toArray(), pageNo, pageSize,
+ Page page = helper.fetchPage(sqlCount, sql, paramList.toArray(), pageNo, pageSize,
CONFIG_INFO_ROW_MAPPER);
for (ConfigInfo configInfo : page.getPageItems()) {
@@ -1056,8 +1046,10 @@ public Page findConfigInfo4Page(final int pageNo, final int pageSize
@Override
public Page findConfigInfoBaseByDataId(final int pageNo, final int pageSize, final String dataId) {
PaginationHelper helper = createPaginationHelper();
- return helper.fetchPage("SELECT count(*) FROM config_info WHERE data_id=? AND tenant_id=?",
- "SELECT id,data_id,group_id,content FROM config_info WHERE data_id=? AND tenant_id=?",
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ final int startRow = (pageNo - 1) * pageSize;
+ return helper.fetchPage(configInfoMapper.findConfigInfoBaseByDataIdCountRows(),
+ configInfoMapper.findConfigInfoBaseByDataIdFetchRows(startRow, pageSize),
new Object[] {dataId, StringUtils.EMPTY}, pageNo, pageSize, CONFIG_INFO_BASE_ROW_MAPPER);
}
@@ -1067,9 +1059,10 @@ public Page findConfigInfoByGroup(final int pageNo, final int pageSi
final String tenant) {
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
PaginationHelper helper = createPaginationHelper();
- return helper.fetchPage("SELECT count(*) FROM config_info WHERE group_id=? AND tenant_id=?",
- "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE group_id=? AND "
- + "tenant_id=?", new Object[] {group, tenantTmp}, pageNo, pageSize, CONFIG_INFO_ROW_MAPPER);
+ final int startRow = (pageNo - 1) * pageSize;
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ return helper.fetchPage(configInfoMapper.findConfigInfoByGroupCountRows(),
+ configInfoMapper.findConfigInfoByGroupFetchRows(startRow, pageSize), new Object[] {group, tenantTmp}, pageNo, pageSize, CONFIG_INFO_ROW_MAPPER);
}
@@ -1078,9 +1071,10 @@ public Page findConfigInfoByGroupAndApp(final int pageNo, final int
final String tenant, final String appName) {
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
PaginationHelper helper = createPaginationHelper();
- return helper.fetchPage("SELECT count(*) FROM config_info WHERE group_id=? AND tenant_id=? AND app_name =?",
- "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE group_id=? AND "
- + "tenant_id=? AND app_name =?", new Object[] {group, tenantTmp, appName}, pageNo, pageSize,
+ final int startRow = (pageNo - 1) * pageSize;
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ return helper.fetchPage(configInfoMapper.findConfigInfoByGroupAndAppCountRows(),
+ configInfoMapper.findConfigInfoByGroupAndAppFetchRows(startRow, pageSize), new Object[] {group, tenantTmp, appName}, pageNo, pageSize,
CONFIG_INFO_ROW_MAPPER);
}
@@ -1092,49 +1086,31 @@ public Page findConfigInfoByGroupAndAdvance(final int pageNo, final
final String appName = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("appName");
final String configTags = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("config_tags");
- StringBuilder sqlCount = new StringBuilder(
- "SELECT count(*) FROM config_info WHERE group_id=? AND tenant_id=? ");
- StringBuilder sql = new StringBuilder(
- "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE group_id=? AND tenant_id=? ");
+ String sqlCount = null;
+ String sql = null;
+ Map params = new HashMap<>(16);
+
List paramList = new ArrayList<>();
paramList.add(group);
paramList.add(tenantTmp);
+ if (StringUtils.isNotBlank(appName)) {
+ paramList.add(appName);
+ params.put(APP_NAME, APP_NAME);
+ }
+ final int startRow = (pageNo - 1) * pageSize;
if (StringUtils.isNotBlank(configTags)) {
- sqlCount = new StringBuilder(
- "SELECT count(*) FROM config_info a LEFT JOIN config_tags_relation b ON a.id=b.id WHERE a.group_id=? AND a.tenant_id=? ");
- sql = new StringBuilder(
- "SELECT a.id,a.data_id,a.group_id,a.tenant_id,a.app_name,a.content FROM config_info a LEFT JOIN "
- + "config_tags_relation b ON a.id=b.id WHERE a.group_id=? AND a.tenant_id=? ");
-
- sqlCount.append(" AND b.tag_name IN (");
- sql.append(" AND b.tag_name IN (");
String[] tagArr = configTags.split(",");
- for (int i = 0; i < tagArr.length; i++) {
- if (i != 0) {
- sqlCount.append(", ");
- sql.append(", ");
- }
- sqlCount.append('?');
- sql.append('?');
- paramList.add(tagArr[i]);
- }
- sqlCount.append(") ");
- sql.append(") ");
-
- if (StringUtils.isNotBlank(appName)) {
- sqlCount.append(" AND a.app_name=? ");
- sql.append(" AND a.app_name=? ");
- paramList.add(appName);
- }
+ paramList.addAll(Arrays.asList(tagArr));
+ ConfigTagsRelationMapper configTagsRelationMapper = (ConfigTagsRelationMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_TAGS_RELATION).get();
+ sqlCount = configTagsRelationMapper.findConfigInfoByGroupAndAdvanceCountRows(params, paramList.size());
+ sql = configTagsRelationMapper.findConfigInfoByGroupAndAdvanceFetchRows(params, paramList.size(), startRow, pageSize);
} else {
- if (StringUtils.isNotBlank(appName)) {
- sqlCount.append(" AND app_name=? ");
- sql.append(" AND app_name=? ");
- paramList.add(appName);
- }
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ sqlCount = configInfoMapper.findConfigInfoByGroupAndAdvanceCountRows(params);
+ sql = configInfoMapper.findConfigInfoByGroupAndAdvanceFetchRows(params, startRow, pageSize);
}
PaginationHelper helper = createPaginationHelper();
- return helper.fetchPage(sqlCount.toString(), sql.toString(), paramList.toArray(), pageNo, pageSize,
+ return helper.fetchPage(sqlCount, sql, paramList.toArray(), pageNo, pageSize,
CONFIG_INFO_ROW_MAPPER);
}
@@ -1144,9 +1120,10 @@ public Page findConfigInfoByApp(final int pageNo, final int pageSize
final String appName) {
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
PaginationHelper helper = createPaginationHelper();
- return helper.fetchPage("SELECT count(*) FROM config_info WHERE tenant_id LIKE ? AND app_name=?",
- "SELECT ID,data_id,group_id,tenant_id,app_name,content FROM config_info WHERE tenant_id LIKE ? AND "
- + "app_name=?", new Object[] {generateLikeArgument(tenantTmp), appName}, pageNo, pageSize,
+ final int startRow = (pageNo - 1) * pageSize;
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ return helper.fetchPage(configInfoMapper.findConfigInfoByAppCountRows(),
+ configInfoMapper.findConfigInfoByAppFetchRows(startRow, pageSize), new Object[] {generateLikeArgument(tenantTmp), appName}, pageNo, pageSize,
CONFIG_INFO_ROW_MAPPER);
}
@@ -1157,45 +1134,27 @@ public Page findConfigInfoByAdvance(final int pageNo, final int page
String tenantTmp = StringUtils.isBlank(tenant) ? StringUtils.EMPTY : tenant;
final String appName = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("appName");
final String configTags = configAdvanceInfo == null ? null : (String) configAdvanceInfo.get("config_tags");
- StringBuilder sqlCount = new StringBuilder("SELECT count(*) FROM config_info WHERE tenant_id LIKE ? ");
- StringBuilder sql = new StringBuilder(
- "SELECT id,data_id,group_id,tenant_id,app_name,content FROM config_info where tenant_id LIKE ? ");
+ String sqlCount = null;
+ String sql = null;
+ Map paramsMap = new HashMap<>(16);
+
List paramList = new ArrayList<>();
paramList.add(tenantTmp);
+ if (StringUtils.isNotBlank(appName)) {
+ paramList.add(appName);
+ paramsMap.put(APP_NAME, APP_NAME);
+ }
+ final int startRow = (pageNo - 1) * pageSize;
if (StringUtils.isNotBlank(configTags)) {
- sqlCount = new StringBuilder(
- "SELECT count(*) FROM config_info a LEFT JOIN config_tags_relation b ON a.id=b.id WHERE a.tenant_id=? ");
-
- sql = new StringBuilder(
- "SELECT a.id,a.data_id,a.group_id,a.tenant_id,a.app_name,a.content FROM config_info a LEFT JOIN "
- + "config_tags_relation b ON a.id=b.id WHERE a.tenant_id=? ");
-
- sqlCount.append(" AND b.tag_name IN (");
- sql.append(" AND b.tag_name IN (");
String[] tagArr = configTags.split(",");
- for (int i = 0; i < tagArr.length; i++) {
- if (i != 0) {
- sqlCount.append(", ");
- sql.append(", ");
- }
- sqlCount.append('?');
- sql.append('?');
- paramList.add(tagArr[i]);
- }
- sqlCount.append(") ");
- sql.append(") ");
-
- if (StringUtils.isNotBlank(appName)) {
- sqlCount.append(" AND a.app_name=? ");
- sql.append(" AND a.app_name=? ");
- paramList.add(appName);
- }
+ paramList.addAll(Arrays.asList(tagArr));
+ ConfigTagsRelationMapper configTagsRelationMapper = (ConfigTagsRelationMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_TAGS_RELATION).get();
+ sqlCount = configTagsRelationMapper.findConfigInfoByAdvanceCountRows(paramsMap, paramList.size());
+ sql = configTagsRelationMapper.findConfigInfoByAdvanceFetchRows(paramsMap, paramList.size(), startRow, pageSize);
} else {
- if (StringUtils.isNotBlank(appName)) {
- sqlCount.append(" AND app_name=? ");
- sql.append(" AND app_name=? ");
- paramList.add(appName);
- }
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ sqlCount = configInfoMapper.findConfigInfoByAdvanceCountRows(paramsMap);
+ sql = configInfoMapper.findConfigInfoByAdvanceFetchRows(paramsMap, startRow, pageSize);
}
PaginationHelper helper = createPaginationHelper();
return helper.fetchPage(sqlCount.toString(), sql.toString(), paramList.toArray(), pageNo, pageSize,
@@ -1206,14 +1165,17 @@ public Page findConfigInfoByAdvance(final int pageNo, final int page
@Override
public Page findConfigInfoBaseByGroup(final int pageNo, final int pageSize, final String group) {
PaginationHelper helper = createPaginationHelper();
- return helper.fetchPage("SELECT count(*) FROM config_info WHERE group_id=? AND tenant_id=?",
- "SELECT id,data_id,group_id,content FROM config_info WHERE group_id=? AND tenant_id=?",
+ final int startRow = (pageNo - 1) * pageSize;
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ return helper.fetchPage(configInfoMapper.findConfigInfoBaseByGroupCountRows(),
+ configInfoMapper.findConfigInfoBaseByGroupFetchRows(startRow, pageSize),
new Object[] {group, StringUtils.EMPTY}, pageNo, pageSize, CONFIG_INFO_BASE_ROW_MAPPER);
}
@Override
public int configInfoCount() {
- String sql = " SELECT count(*) FROM config_info ";
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ String sql = configInfoMapper.count();
Integer result = databaseOperate.queryOne(sql, Integer.class);
if (result == null) {
throw new IllegalArgumentException("configInfoCount error");
@@ -1223,7 +1185,8 @@ public int configInfoCount() {
@Override
public int configInfoCount(String tenant) {
- String sql = " SELECT count(*) FROM config_info WHERE tenant_id LIKE ?";
+ ConfigInfoMapper configInfoMapper = (ConfigInfoMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO).get();
+ String sql = configInfoMapper.configInfoLikeTenantCount();
Integer result = databaseOperate.queryOne(sql, new Object[] {tenant}, Integer.class);
if (result == null) {
throw new IllegalArgumentException("configInfoCount error");
@@ -1233,7 +1196,8 @@ public int configInfoCount(String tenant) {
@Override
public int configInfoBetaCount() {
- String sql = " SELECT count(*) FROM config_info_beta ";
+ ConfigInfoBetaMapper configInfoBetaMapper = (ConfigInfoBetaMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_BETA).get();
+ String sql = configInfoBetaMapper.count();
Integer result = databaseOperate.queryOne(sql, Integer.class);
if (result == null) {
throw new IllegalArgumentException("configInfoBetaCount error");
@@ -1243,7 +1207,8 @@ public int configInfoBetaCount() {
@Override
public int configInfoTagCount() {
- String sql = " SELECT count(*) FROM config_info_tag ";
+ ConfigInfoTagMapper configInfoTagMapper = (ConfigInfoTagMapper) mapperManager.findMapper(dataSource, TableConstant.CONFIG_INFO_TAG).get();
+ String sql = configInfoTagMapper.configInfoTagCount();
Integer result = databaseOperate.queryOne(sql, Integer.class);
if (result == null) {
throw new IllegalArgumentException("configInfoBetaCount error");
@@ -1254,8 +1219,10 @@ public int configInfoTagCount() {
@Override
public List getTenantIdList(int page, int pageSize) {
PaginationHelper