|
@@ -3,16 +3,13 @@ package org.dbsyncer.connector.sqlserver;
|
|
|
import org.dbsyncer.common.util.StringUtil;
|
|
|
import org.dbsyncer.connector.config.CommandConfig;
|
|
|
import org.dbsyncer.connector.config.DatabaseConfig;
|
|
|
-import org.dbsyncer.connector.constant.ConnectorConstant;
|
|
|
import org.dbsyncer.connector.constant.DatabaseConstant;
|
|
|
import org.dbsyncer.connector.database.AbstractDatabaseConnector;
|
|
|
import org.dbsyncer.connector.database.DatabaseConnectorMapper;
|
|
|
import org.dbsyncer.connector.model.PageSql;
|
|
|
import org.dbsyncer.connector.model.Table;
|
|
|
|
|
|
-import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
-import java.util.Map;
|
|
|
|
|
|
public final class SqlServerConnector extends AbstractDatabaseConnector {
|
|
|
|
|
@@ -29,34 +26,19 @@ public final class SqlServerConnector extends AbstractDatabaseConnector {
|
|
|
|
|
|
@Override
|
|
|
public Object[] getPageArgs(int pageIndex, int pageSize) {
|
|
|
- return new Object[]{(pageIndex - 1) * pageSize + 1, pageIndex * pageSize};
|
|
|
+ return new Object[] {(pageIndex - 1) * pageSize + 1, pageIndex * pageSize};
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- public Map<String, String> getSourceCommand(CommandConfig commandConfig) {
|
|
|
- // 获取过滤SQL
|
|
|
- String queryFilterSql = this.getQueryFilterSql(commandConfig.getFilter());
|
|
|
-
|
|
|
- // 获取查询SQL
|
|
|
- Table table = commandConfig.getTable();
|
|
|
- String schema = getSchema((DatabaseConfig) commandConfig.getConnectorConfig(), buildSqlWithQuotation());
|
|
|
- Map<String, String> map = new HashMap<>();
|
|
|
-
|
|
|
- String query = ConnectorConstant.OPERTION_QUERY;
|
|
|
- map.put(query, this.buildSql(query, commandConfig, schema, queryFilterSql));
|
|
|
-
|
|
|
- // 获取查询总数SQL
|
|
|
- StringBuilder queryCount = new StringBuilder();
|
|
|
+ protected String getQueryCountSql(CommandConfig commandConfig, String schema, String quotation, String queryFilterSql) {
|
|
|
+ // 有过滤条件,走默认方式
|
|
|
if (StringUtil.isNotBlank(queryFilterSql)) {
|
|
|
- queryCount.append("SELECT COUNT(*) FROM ").append(schema).append(table.getName()).append(queryFilterSql);
|
|
|
- } else {
|
|
|
- DatabaseConfig cfg = (DatabaseConfig) commandConfig.getConnectorConfig();
|
|
|
- // 从存储过程查询(定时更新总数,可能存在误差)
|
|
|
- queryCount.append("SELECT ROWS FROM SYSINDEXES WHERE ID = OBJECT_ID('").append(cfg.getSchema()).append(".").append(table.getName()).append(
|
|
|
- "') AND INDID IN (0, 1)");
|
|
|
+ return super.getQueryCountSql(commandConfig, schema, quotation, queryFilterSql);
|
|
|
}
|
|
|
- map.put(ConnectorConstant.OPERTION_QUERY_COUNT, queryCount.toString());
|
|
|
- return map;
|
|
|
- }
|
|
|
|
|
|
+ String table = commandConfig.getTable().getName();
|
|
|
+ DatabaseConfig cfg = (DatabaseConfig) commandConfig.getConnectorConfig();
|
|
|
+ // 从存储过程查询(定时更新总数,可能存在误差)
|
|
|
+ return String.format("SELECT ROWS FROM SYSINDEXES WHERE ID = OBJECT_ID('%s.%s') AND INDID IN (0, 1)", cfg.getSchema(), table);
|
|
|
+ }
|
|
|
}
|