代码逻辑梳理优化

This commit is contained in:
inrgihc
2023-07-27 23:50:01 +08:00
parent b261976bae
commit 540890ae77
55 changed files with 510 additions and 1280 deletions

View File

@@ -15,7 +15,9 @@ import com.gitee.dbswitch.features.ProductFeatures;
import com.gitee.dbswitch.provider.AbstractFactoryProvider;
import com.gitee.dbswitch.provider.meta.MetadataProvider;
import com.gitee.dbswitch.provider.operate.TableOperateProvider;
import com.gitee.dbswitch.provider.sync.AutoCastTableDataSynchronizer;
import com.gitee.dbswitch.provider.sync.TableDataSynchronizer;
import com.gitee.dbswitch.provider.write.AutoCastTableDataWriteProvider;
import com.gitee.dbswitch.provider.write.TableDataWriteProvider;
import javax.sql.DataSource;
@@ -37,7 +39,7 @@ public class DB2FactoryProvider extends AbstractFactoryProvider {
@Override
public TableDataWriteProvider createTableDataWriteProvider(boolean useInsert) {
return new DB2TableDataWriteProvider(this);
return new AutoCastTableDataWriteProvider(this);
}
@Override
@@ -47,7 +49,7 @@ public class DB2FactoryProvider extends AbstractFactoryProvider {
@Override
public TableDataSynchronizer createTableDataSynchronizer() {
return new DB2TableSynchronizer(this);
return new AutoCastTableDataSynchronizer(this);
}
}

View File

@@ -1,38 +0,0 @@
// Copyright tang. All rights reserved.
// https://gitee.com/inrgihc/dbswitch
//
// Use of this source code is governed by a BSD-style license
//
// Author: tang (inrgihc@126.com)
// Date : 2020/1/2
// Location: beijing , china
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.product.db2;
import com.gitee.dbswitch.common.util.ObjectCastUtils;
import com.gitee.dbswitch.provider.ProductFactoryProvider;
import com.gitee.dbswitch.provider.write.DefaultTableDataWriteProvider;
import java.util.List;
public class DB2TableDataWriteProvider extends DefaultTableDataWriteProvider {
public DB2TableDataWriteProvider(ProductFactoryProvider factoryProvider) {
super(factoryProvider);
}
@Override
public long write(List<String> fieldNames, List<Object[]> recordValues) {
recordValues.parallelStream().forEach((Object[] row) -> {
for (int i = 0; i < row.length; ++i) {
try {
row[i] = ObjectCastUtils.castByDetermine(row[i]);
} catch (Exception e) {
row[i] = null;
}
}
});
return super.write(fieldNames, recordValues);
}
}

View File

@@ -20,14 +20,8 @@ public class DB2TableOperateProvider extends DefaultTableOperateProvider {
@Override
public void truncateTableData(String schemaName, String tableName) {
String sql = String.format("TRUNCATE TABLE \"%s\".\"%s\" immediate ", schemaName, tableName);
String sql = String.format("TRUNCATE TABLE \"%s\".\"%s\" IMMEDIATE ", schemaName, tableName);
this.executeSql(sql);
}
@Override
public void dropTable(String schemaName, String tableName) {
String sql = String.format("DROP TABLE \"%s\".\"%s\" ", schemaName, tableName);
this.executeSql(sql);
}
}

View File

@@ -1,52 +0,0 @@
// Copyright tang. All rights reserved.
// https://gitee.com/inrgihc/dbswitch
//
// Use of this source code is governed by a BSD-style license
//
// Author: tang (inrgihc@126.com)
// Date : 2020/1/2
// Location: beijing , china
/////////////////////////////////////////////////////////////
package com.gitee.dbswitch.product.db2;
import com.gitee.dbswitch.common.util.TypeConvertUtils;
import com.gitee.dbswitch.provider.ProductFactoryProvider;
import com.gitee.dbswitch.provider.sync.DefaultTableDataSynchronizer;
import java.util.List;
public class DB2TableSynchronizer extends DefaultTableDataSynchronizer {
public DB2TableSynchronizer(ProductFactoryProvider factoryProvider) {
super(factoryProvider);
}
@Override
public long executeInsert(List<Object[]> records) {
records.forEach((Object[] row) -> {
for (int i = 0; i < row.length; ++i) {
try {
row[i] = TypeConvertUtils.castByDetermine(row[i]);
} catch (Exception e) {
row[i] = null;
}
}
});
return super.executeInsert(records);
}
@Override
public long executeUpdate(List<Object[]> records) {
records.forEach((Object[] row) -> {
for (int i = 0; i < row.length; ++i) {
try {
row[i] = TypeConvertUtils.castByDetermine(row[i]);
} catch (Exception e) {
row[i] = null;
}
}
});
return super.executeUpdate(records);
}
}