【修改】删除数据库判空

This commit is contained in:
YOHO\20373
2025-06-27 12:07:05 +08:00
parent 3f17230b15
commit a370e6acd5

View File

@@ -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);