From a370e6acd53b2c378d2f8a6a7036ece7a4242576 Mon Sep 17 00:00:00 2001 From: "YOHO\\20373" <2037305722@qq.com> Date: Fri, 27 Jun 2025 12:07:05 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BF=AE=E6=94=B9=E3=80=91=E5=88=A0?= =?UTF-8?q?=E9=99=A4=E6=95=B0=E6=8D=AE=E5=BA=93=E5=88=A4=E7=A9=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/mysql/IMysqlLocalServiceImpl.java | 34 +++++++++---------- 1 file changed, 17 insertions(+), 17 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 b292fe6..557fd92 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 @@ -1009,27 +1009,27 @@ public class IMysqlLocalServiceImpl implements IMysqlLocalService { try (Connection connstu = DriverManager.getConnection(stuDbUrl, user, password); Statement stmtstu = connstu.createStatement()) { + if (tNames!=null&&tNames.size()>0){ + for (String tName : tNames) { + // 校验数据库名格式,防止 SQL 注入 + if (!tName.matches("^[a-zA-Z0-9_]+$")) { + System.err.println("非法数据库名,跳过: " + tName); + continue; + } - for (String tName : tNames) { - // 校验数据库名格式,防止 SQL 注入 - if (!tName.matches("^[a-zA-Z0-9_]+$")) { - System.err.println("非法数据库名,跳过: " + tName); - continue; - } - - // 检查数据库是否存在 - String checkSql = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '" + tName + "'"; - try (ResultSet rs = stmtstu.executeQuery(checkSql)) { - if (rs.next()) { - String dropDbSql = "DROP DATABASE `" + tName + "`"; - stmtstu.executeUpdate(dropDbSql); - System.out.println("已删除数据库:" + tName); - } else { - System.out.println("数据库不存在,跳过:" + tName); + // 检查数据库是否存在 + String checkSql = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '" + tName + "'"; + try (ResultSet rs = stmtstu.executeQuery(checkSql)) { + if (rs.next()) { + String dropDbSql = "DROP DATABASE `" + tName + "`"; + stmtstu.executeUpdate(dropDbSql); + System.out.println("已删除数据库:" + tName); + } else { + System.out.println("数据库不存在,跳过:" + tName); + } } } } - } catch (SQLException e) { e.printStackTrace(); throw new RuntimeException("数据库操作失败", e);