in src/main/java/com/datacompare/service/CompareService.java [89:175]
public void executeComparision(AppProperties appProperties) {
try {
setConnections(appProperties);
if(getSourceConn() != null && getTargetConn() != null) {
long rowNo = 1;
Date date = new Date();
DateUtil dateUtil = new DateUtil();
String executionStartedAt = dateUtil.getExecutionDate(date);
String appendDateToFileNames = dateUtil.getAppendDateToFileName(date);
CompareController.reportOutputFolder = appProperties.getOutputFolderPath();
StringBuilder data = new StringBuilder();
data.append("<html><head><title>Data Compare Results</title><style>table{border: 1px solid #ddd; border-radius: 13px; border-collapse: collapse;} th, td {border-bottom: 1px solid #ddd;border-collapse: collapse; font-family: Arial; font-size: 10pt;} th, td {padding: 10px;} th {text-align: left;} table {border-spacing: 5px; width: 100%; background-color: #f1f1c1; border-color: gray;} table tr:nth-child(even) {background-color: #eee;} table tr:nth-child(odd) {background-color: #fff;} table th {color: white; background-color: black;} </style></head><body>")
.append("<table><thead><tr><th>S.NO</th><th>TABLE</th><th>DETAILS</th><th>EXECUTION</th></tr></thead><tbody>");
List<String> columnList = getColumnList(appProperties.getColumns());
if (appProperties.getTableName() != null && !appProperties.getTableName().isEmpty()
&& !appProperties.isIgnoreTables()) {
String[] tableNameParts = appProperties.getTableName().split(",");
for (String tableName : tableNameParts) {
CompareResult dto = compare(appProperties, getSourceConn(), getTargetConn(),
appProperties.getSchemaName(), tableName, columnList);
String executedTableName = appProperties.getSchemaName() + "." + tableName;
summary(executedTableName, data, executionStartedAt, rowNo++, columnList, dto, appProperties);
}
} else {
String[] schemaParts = appProperties.getSchemaName().split(",");
for (String schemaName : schemaParts) {
List<CompareResult> dtos = compareSchema(appProperties, getSourceConn(), getTargetConn(), schemaName, columnList);
for (CompareResult dto : dtos) {
String executedTableName = schemaName + "." + dto.getTableName();
summary(executedTableName, data, executionStartedAt, rowNo++, columnList, dto, appProperties);
}
}
}
data.append("</tbody>")
.append("</table>")
.append("</body>")
.append("</html>");
String jobName = appProperties.getJobName();
jobName = (jobName != null && !jobName.isEmpty()) ? jobName : "data_comparison_result";
String fileName = jobName + "_" + appendDateToFileNames + ".html";
FileUtil fileWrite = new FileUtil();
fileWrite.writeDataToFile(data, fileName, CompareController.reportOutputFolder);
CompareController.reportFileName = fileName;
} else {
logger.info("Either Source or Target DB connection is not established.");
}
} catch (Exception ex) {
logger.error(ex.getMessage(), ex);
} finally {
JdbcUtil jdbcUtil = new JdbcUtil();
jdbcUtil.closeConnection(getSourceConn());
jdbcUtil.closeConnection(getTargetConn());
}
}