【修改】删除数据库判空
This commit is contained in:
@@ -1009,27 +1009,27 @@ public class IMysqlLocalServiceImpl implements IMysqlLocalService {
|
|||||||
|
|
||||||
try (Connection connstu = DriverManager.getConnection(stuDbUrl, user, password);
|
try (Connection connstu = DriverManager.getConnection(stuDbUrl, user, password);
|
||||||
Statement stmtstu = connstu.createStatement()) {
|
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 注入
|
String checkSql = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '" + tName + "'";
|
||||||
if (!tName.matches("^[a-zA-Z0-9_]+$")) {
|
try (ResultSet rs = stmtstu.executeQuery(checkSql)) {
|
||||||
System.err.println("非法数据库名,跳过: " + tName);
|
if (rs.next()) {
|
||||||
continue;
|
String dropDbSql = "DROP DATABASE `" + tName + "`";
|
||||||
}
|
stmtstu.executeUpdate(dropDbSql);
|
||||||
|
System.out.println("已删除数据库:" + tName);
|
||||||
// 检查数据库是否存在
|
} else {
|
||||||
String checkSql = "SELECT SCHEMA_NAME FROM INFORMATION_SCHEMA.SCHEMATA WHERE SCHEMA_NAME = '" + tName + "'";
|
System.out.println("数据库不存在,跳过:" + 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) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
throw new RuntimeException("数据库操作失败", e);
|
throw new RuntimeException("数据库操作失败", e);
|
||||||
|
Reference in New Issue
Block a user