From 0acce243db554d2789058f58bec5790153c64038 Mon Sep 17 00:00:00 2001 From: "YOHO\\20373" <2037305722@qq.com> Date: Wed, 2 Jul 2025 13:04:08 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=BF=E6=8D=A2=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/mysql/IMysqlLocalServiceImpl.java | 114 +++++++++--------- 1 file changed, 57 insertions(+), 57 deletions(-) diff --git a/src/main/java/com/example/exam/exam/service/mysql/IMysqlLocalServiceImpl.java b/src/main/java/com/example/exam/exam/service/mysql/IMysqlLocalServiceImpl.java index dd035f7..7db78d9 100644 --- a/src/main/java/com/example/exam/exam/service/mysql/IMysqlLocalServiceImpl.java +++ b/src/main/java/com/example/exam/exam/service/mysql/IMysqlLocalServiceImpl.java @@ -435,69 +435,69 @@ public class IMysqlLocalServiceImpl implements IMysqlLocalService { if (matcher.find()) { - String tableName = matcher.group(1); + String tableName = matcher.group(1); - List> answerList= new ArrayList<>(); - List> 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> answerList= new ArrayList<>(); + List> 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 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 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 fieldMeta = answerListStu.get(0); - List fieldValue = answerListStu.get(1); + if (answerListStu.size() >= 2) { + List fieldMeta = answerListStu.get(0); + List fieldValue = answerListStu.get(1); - Map 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 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(); + } + }