查询mapper
<!-- 方法 -->
@SelectProvider(type = SqlProviderCheck.class, method = "provideSql")
List<JSONObject> selectGenerateTable(String sql);
校验类
public class SqlProviderCheck {
public String provideSql(String sql) {
// 对输入的 SQL 进行基本安全校验(禁止 DROP、DELETE 等危险操作)
if (sql == null || sql.trim().isEmpty()) {
throw new IllegalArgumentException("SQL 不能为空");
}
String lowerSql = sql.toLowerCase();
if (lowerSql.contains("drop") || lowerSql.contains("delete") || lowerSql.contains("alter")) {
throw new IllegalArgumentException("SQL 包含不安全的操作");
}
// 返回传入的 SQL
return sql;
}
}