|
@@ -110,7 +110,9 @@ public abstract class AbstractDatabaseConnector extends AbstractConnector implem
|
|
|
|
|
|
// 1、获取select SQL
|
|
|
String queryCountSql = command.get(ConnectorConstant.OPERTION_QUERY_COUNT);
|
|
|
- Assert.hasText(queryCountSql, "查询总数语句不能为空.");
|
|
|
+ if (StringUtil.isBlank(queryCountSql)) {
|
|
|
+ return 0;
|
|
|
+ }
|
|
|
|
|
|
// 2、返回结果集
|
|
|
return connectorMapper.execute(databaseTemplate -> {
|
|
@@ -225,12 +227,14 @@ public abstract class AbstractDatabaseConnector extends AbstractConnector implem
|
|
|
// 获取查询数据行是否存在
|
|
|
String tableName = commandConfig.getTable().getName();
|
|
|
List<String> primaryKeys = PrimaryKeyUtil.findTablePrimaryKeys(commandConfig.getTable());
|
|
|
- StringBuilder queryCount = new StringBuilder("SELECT COUNT(1) FROM ").append(schema).append(quotation).append(tableName).append(quotation).append(" WHERE ");
|
|
|
- // id = ? AND uid = ?
|
|
|
- PrimaryKeyUtil.buildSql(queryCount, primaryKeys, quotation, " AND ", " = ? ", true);
|
|
|
+ if (!CollectionUtils.isEmpty(primaryKeys)) {
|
|
|
+ StringBuilder queryCount = new StringBuilder("SELECT COUNT(1) FROM ").append(schema).append(quotation).append(tableName).append(quotation).append(" WHERE ");
|
|
|
+ // id = ? AND uid = ?
|
|
|
+ PrimaryKeyUtil.buildSql(queryCount, primaryKeys, quotation, " AND ", " = ? ", true);
|
|
|
|
|
|
- String queryCountExist = ConnectorConstant.OPERTION_QUERY_COUNT_EXIST;
|
|
|
- map.put(queryCountExist, queryCount.toString());
|
|
|
+ String queryCountExist = ConnectorConstant.OPERTION_QUERY_COUNT_EXIST;
|
|
|
+ map.put(queryCountExist, queryCount.toString());
|
|
|
+ }
|
|
|
return map;
|
|
|
}
|
|
|
|
|
@@ -344,14 +348,16 @@ public abstract class AbstractDatabaseConnector extends AbstractConnector implem
|
|
|
String table = commandConfig.getTable().getName();
|
|
|
List<String> primaryKeys = PrimaryKeyUtil.findTablePrimaryKeys(commandConfig.getTable());
|
|
|
StringBuilder sql = new StringBuilder();
|
|
|
- sql.append("SELECT COUNT(1) FROM (SELECT 1 FROM ").append(schema).append(quotation).append(table).append(quotation);
|
|
|
- if (StringUtil.isNotBlank(queryFilterSql)) {
|
|
|
- sql.append(queryFilterSql);
|
|
|
- }
|
|
|
- sql.append(" GROUP BY ");
|
|
|
- // id,uid
|
|
|
- PrimaryKeyUtil.buildSql(sql, primaryKeys, quotation, ",", "", true);
|
|
|
- sql.append(") DBSYNCER_T");
|
|
|
+ if (!CollectionUtils.isEmpty(primaryKeys)) {
|
|
|
+ sql.append("SELECT COUNT(1) FROM (SELECT 1 FROM ").append(schema).append(quotation).append(table).append(quotation);
|
|
|
+ if (StringUtil.isNotBlank(queryFilterSql)) {
|
|
|
+ sql.append(queryFilterSql);
|
|
|
+ }
|
|
|
+ sql.append(" GROUP BY ");
|
|
|
+ // id,uid
|
|
|
+ PrimaryKeyUtil.buildSql(sql, primaryKeys, quotation, ",", "", true);
|
|
|
+ sql.append(") DBSYNCER_T");
|
|
|
+ }
|
|
|
return sql.toString();
|
|
|
}
|
|
|
|
|
@@ -494,8 +500,11 @@ public abstract class AbstractDatabaseConnector extends AbstractConnector implem
|
|
|
throw new ConnectorException("Table name can not be empty.");
|
|
|
}
|
|
|
List<String> primaryKeys = PrimaryKeyUtil.findTablePrimaryKeys(commandConfig.getTable());
|
|
|
- SqlBuilderConfig config = new SqlBuilderConfig(this, schema, tableName, primaryKeys, fields, queryFilterSQL, buildSqlWithQuotation());
|
|
|
- return SqlBuilderEnum.getSqlBuilder(type).buildSql(config);
|
|
|
+ if (!CollectionUtils.isEmpty(primaryKeys)) {
|
|
|
+ SqlBuilderConfig config = new SqlBuilderConfig(this, schema, tableName, primaryKeys, fields, queryFilterSQL, buildSqlWithQuotation());
|
|
|
+ return SqlBuilderEnum.getSqlBuilder(type).buildSql(config);
|
|
|
+ }
|
|
|
+ return "";
|
|
|
}
|
|
|
|
|
|
/**
|