public class CompareTool {
private static final String PROBE_TABLE_NAME = "tab1";
private static final String COMPARE_TABLE_NAME = "tab2";
private static final String CONNECTION_INFO_CONFIG_FILE_PATH = "./dbConnectionInfo.xml";
/**
* @param args the command line arguments
*/
public static void main(String[] args) throws SQLException {
DKDBConnectionInfo connectionInfo = (DKDBConnectionInfo) DKSpringUtil.getBean(
"connectionInfo", new String[] { CONNECTION_INFO_CONFIG_FILE_PATH },
DKDemoDB.class.getClassLoader());
if (connectionInfo == null)
throw new RuntimeException(String.format(
"cannot find connectionInfo in Spring config file->%s",
CONNECTION_INFO_CONFIG_FILE_PATH));
System.out.println("connectionInfo->{}"+connectionInfo);
DKDatabase connectionSource = new DKDatabase(connectionInfo);
DKDBTableDataAccess tableDataAccess = new DKDBTableDataAccess(connectionSource);
DKDBTable table = tableDataAccess.getTable(PROBE_TABLE_NAME);
System.out.println("table->{1}"+table.containsColumn("cardid"));
DKDBTable table2 = tableDataAccess.getTable(COMPARE_TABLE_NAME);
System.out.println("table->{2}"+table2.containsColumn("cardid"));
DKTableModel tm1 = DKTableModelUtil.createDefaultTableModel(DKDBFlavor.MYSQL, table,table.getPrimaryKeyColumnNames());
DKTableModel tm2 = DKTableModelUtil.createDefaultTableModel(DKDBFlavor.MYSQL, table2,table2.getPrimaryKeyColumnNames());
DKColumnModel[] lhsColumns = tm1.getColumns();
int[] lhsKey = tm1.getKey();
DKColumnModel[] rhsColumns = tm2.getColumns();
int[] rhsKey = tm2.getKey();
DKComparatorChain chain = new DKComparatorChain();
Object[] lhrow_ = new Object[100];
for (int i = 0; i < lhsKey.length; i++) {
Comparator<Comparable[]> comparator = new DKElementComparator<Comparable>(
lhsColumns[lhsKey[i]]._index, rhsColumns[rhsKey[i]]._index,
DKComparableComparator.getInstance());
Float _numberTolerance = new Float(0);
Map<String, Float> toleranceMap_ = null;
DKColumnModel lhColumnModel = lhsColumns[lhsKey[i]];
DKColumnModel rhColumnModel = lhsColumns[lhsKey[i]];
DKColumnComparison columnPlan = new DKColumnComparison(lhColumnModel, rhColumnModel, DKEqualsDiffor.getInstance());
DKColumnComparison[] map = createDefaultMap(tm1,tm2, _numberTolerance, toleranceMap_);
int[][] displayIndexes_;
DKDiffor dkfor = DKEqualsDiffor.getInstance();
DKColumnComparison cmp = new DKColumnComparison(lhsColumns[lhsKey[i]], rhsColumns[rhsKey[i]], dkfor);
cmp.validate(tm2, tm2);
Object obj = cmp.getLHValue(lhsColumns);
System.out.println(""+obj);
chain.addComparator(comparator);
System.out.println(""+chain.toString());
}
System.out.println(""+lhrow_.length);
for (int lh=0; lh<lhrow_.length;lh++)
{
//System.out.println(""+lhrow_[lh]);
}
System.out.println(""+lhsColumns.length);
DKColumnModel dkm = tm1.getColumn("cardid");
DKColumnComparison dcc;
System.out.println(""+chain.size());
//chain.compare(tm1, tm2);
//DKStandardTableComparison dc = new DKStandardTableComparison(., null, DKDiff.Kind.BOTH, map_, diffIndexes_, displayIndexes_, maxDiffs_);
int[][] _displayIndexes;
long _maxDiffs;
DKMagicPlan dkmp = new DKMagicPlan();
dkmp.setDbConnectionInfo(connectionInfo);
dkmp.setLhsDBTableName(PROBE_TABLE_NAME);
dkmp.setRhsDBTableName(COMPARE_TABLE_NAME);
dkmp.setDiffKind(DKDiff.Kind.BOTH);
dkmp.getWithSummary();
dkmp.setSinkFilePath("D:\test");
}
}