替换文件

This commit is contained in:
YOHO\20373
2025-07-02 13:04:08 +08:00
parent a215890004
commit 0acce243db

View File

@@ -435,69 +435,69 @@ public class IMysqlLocalServiceImpl implements IMysqlLocalService {
if (matcher.find()) {
String tableName = matcher.group(1);
String tableName = matcher.group(1);
List<List<String>> answerList= new ArrayList<>();
List<List<String>> answerListStu = new ArrayList<>();
try (Connection connanswer = DriverManager.getConnection(newDbUrl, user, password);
Statement stmtan = connanswer.createStatement()) {
try (ResultSet answer = stmtan.executeQuery(selectSql)) {
answerList = getAnswerList(answer);
List<List<String>> answerList= new ArrayList<>();
List<List<String>> answerListStu = new ArrayList<>();
try (Connection connanswer = DriverManager.getConnection(newDbUrl, user, password);
Statement stmtan = connanswer.createStatement()) {
try (ResultSet answer = stmtan.executeQuery(selectSql)) {
answerList = getAnswerList(answer);
// appendToFile(answerLogPath, "查找语句标准答案");
// judgementStr = HtmlAppender.appendHtmlLine(judgementStr, "查找语句标准答案");
// printResult(answerList,judgementStr);
}catch (SQLException e) {
}catch (SQLException e) {
// appendToFile(answerLogPath, "答案表执行验证语句"+selectSql+"时发生错误: " + e.getMessage());
// judgementStr = HtmlAppender.appendHtmlLine(judgementStr, "答案表执行验证语句"+selectSql+"时发生错误: " + e.getMessage());
e.printStackTrace();
}
}
String stuSql =null;
try (Connection connstu = DriverManager.getConnection(stuDbUrl, user, password);
Statement stmtstu = connstu.createStatement()) {
try (ResultSet answer = stmtstu.executeQuery(selectSql)) {
answerListStu = getAnswerList(answer);
//还原 sql
ResultSetMetaData meta = answer.getMetaData();
List<String> columns = new ArrayList<>();
for (int i = 1; i <= meta.getColumnCount(); i++) {
columns.add(meta.getColumnLabel(i));
e.printStackTrace();
}
}
String stuSql =null;
try (Connection connstu = DriverManager.getConnection(stuDbUrl, user, password);
Statement stmtstu = connstu.createStatement()) {
try (ResultSet answer = stmtstu.executeQuery(selectSql)) {
answerListStu = getAnswerList(answer);
//还原 sql
ResultSetMetaData meta = answer.getMetaData();
List<String> columns = new ArrayList<>();
for (int i = 1; i <= meta.getColumnCount(); i++) {
columns.add(meta.getColumnLabel(i));
}
stuSql = restoreUpdateFromResult(sql, columns, answerListStu);
stuSql = restoreUpdateFromResult(sql, columns, answerListStu);
// appendToFile(answerLogPath, "还原学生 UPDATE 语句:" + stuSql);
// judgementStr = HtmlAppender.appendHtmlLine(judgementStr, "还原学生 UPDATE 语句:" + stuSql);
// appendToFile(answerLogPath, "学生语句答案:");
// judgementStr = HtmlAppender.appendHtmlLine(judgementStr, "学生语句答案:");
// printResult(answerListStu,judgementStr);
} catch (SQLException e) {
} catch (SQLException e) {
// appendToFile(answerLogPath, "学生表执行验证语句"+selectSql+"时发生错误:" + e.getMessage());
// judgementStr = HtmlAppender.appendHtmlLine(judgementStr, "学生表执行验证语句"+selectSql+"时发生错误: " + e.getMessage());
}
}
boolean isEquivalent =false;
if (answerListStu!=null&&answerListStu.size()>0){
isEquivalent = compareResultsSelect(answerList, answerListStu);
}
//
if (isEquivalent) {
appendToFile(answerLogPath, "【执行】 "+""+selectSql+"】【验证】【表】【"+tableName+"】【✅】");
judgementStr = HtmlAppender.appendHtmlLine(judgementStr, "【执行】 "+""+selectSql+"】【验证】【表】【"+tableName+"】【✅】");
SourceAndText studentScorePojo = accumulateScoreAndLog(examMysqlKeywordList,total,answerLogPath,stuSql,totalKeyScore,score,answerId,scoreTotal,judgementStr);
scoreTotal += studentScorePojo.getScore();
judgementStr = studentScorePojo.getText();
}
boolean isEquivalent =false;
} else {
appendToFile(answerLogPath, "【执行】 "+""+selectSql+"】【验证】【表】【"+tableName+"】【❌】");
judgementStr = HtmlAppender.appendHtmlLine(judgementStr, "【执行】 "+""+selectSql+"】【验证】【表】【"+tableName+"】【❌】");
SourceAndText studentScorePojo= calculateTotalScoreRate(stuSql, examMysqlKeywordList,totalKeyScore,score,answerId,scoreTotal,judgementStr);
scoreTotal += studentScorePojo.getScore();
judgementStr = studentScorePojo.getText();
if (answerListStu!=null&&answerListStu.size()>0){
isEquivalent = compareResultsSelect(answerList, answerListStu);
}
//
if (isEquivalent) {
appendToFile(answerLogPath, "【执行】 "+""+selectSql+"】【验证】【表】【"+tableName+"】【✅】");
judgementStr = HtmlAppender.appendHtmlLine(judgementStr, "【执行】 "+""+selectSql+"】【验证】【表】【"+tableName+"】【✅】");
SourceAndText studentScorePojo = accumulateScoreAndLog(examMysqlKeywordList,total,answerLogPath,stuSql,totalKeyScore,score,answerId,scoreTotal,judgementStr);
scoreTotal += studentScorePojo.getScore();
judgementStr = studentScorePojo.getText();
} else {
appendToFile(answerLogPath, "【执行】 "+""+selectSql+"】【验证】【表】【"+tableName+"】【❌】");
judgementStr = HtmlAppender.appendHtmlLine(judgementStr, "【执行】 "+""+selectSql+"】【验证】【表】【"+tableName+"】【❌】");
SourceAndText studentScorePojo= calculateTotalScoreRate(stuSql, examMysqlKeywordList,totalKeyScore,score,answerId,scoreTotal,judgementStr);
scoreTotal += studentScorePojo.getScore();
judgementStr = studentScorePojo.getText();
}
}
}
}
if (sql.trim().toUpperCase().startsWith("SELECT")) {
@@ -1026,22 +1026,22 @@ public class IMysqlLocalServiceImpl implements IMysqlLocalService {
} else {
if (answerListStu.size() >= 2) {
List<String> fieldMeta = answerListStu.get(0);
List<String> fieldValue = answerListStu.get(1);
if (answerListStu.size() >= 2) {
List<String> fieldMeta = answerListStu.get(0);
List<String> fieldValue = answerListStu.get(1);
Map<String, String> columnInfo = new HashMap<>();
for (int i = 0; i < fieldMeta.size() && i < fieldValue.size(); i++) {
columnInfo.put(fieldMeta.get(i), fieldValue.get(i));
}
String alterSQL = buildAlterFromShowColumn(tableName, columnInfo);
appendToFile(answerLogPath, "【执行】 "+""+selectSql+"】 【验证】 【表】 【"+tableName+"】【❌】");
SourceAndText studentScorePojo = calculateTotalScoreRate(alterSQL, examMysqlKeywordList, totalKeyScore, score, answerId, scoreTotal, judgementStr);
scoreTotal += studentScorePojo.getScore();
judgementStr = studentScorePojo.getText();
Map<String, String> columnInfo = new HashMap<>();
for (int i = 0; i < fieldMeta.size() && i < fieldValue.size(); i++) {
columnInfo.put(fieldMeta.get(i), fieldValue.get(i));
}
String alterSQL = buildAlterFromShowColumn(tableName, columnInfo);
appendToFile(answerLogPath, "【执行】 "+""+selectSql+"】 【验证】 【表】 【"+tableName+"】【❌】");
SourceAndText studentScorePojo = calculateTotalScoreRate(alterSQL, examMysqlKeywordList, totalKeyScore, score, answerId, scoreTotal, judgementStr);
scoreTotal += studentScorePojo.getScore();
judgementStr = studentScorePojo.getText();
}
}