springboot mybatispuls 拦截查询sql修改指定参数信息
时间: 2024-10-16 08:11:44 浏览: 22
在Spring Boot项目中整合MyBatis Plus (MPlus) 和 SQL拦截器可以让你在发送SQL查询到数据库前对参数进行修改或过滤。MPlus内置了全局拦截器和局部拦截器功能,你可以自定义一个拦截器来达到目的。
以下是一个简单的步骤:
1. 首先,在你的项目中添加MyBatis Plus的依赖到`pom.xml` 或 `build.gradle` 文件中。
2. 创建一个实现了`com.baomidou.mybatisplus.core.interceptor.InterceptParam`接口的拦截器类。这个接口有一个`intercept`方法,其中你可以获取到即将执行的SQL查询和参数。
```java
import com.baomidou.mybatisplus.core.interceptor.InterceptParam;
import com.baomidou.mybatisplus.core.metadata.IPage;
public class SqlInterceptor implements InterceptorParam {
@Override
public Object intercept(IPage page, Model model, Object param, Method method, Object[] args) throws Throwable {
// 这里可以获取到查询参数
Map<String, Object> params = (Map<String, Object>) param;
// 对参数进行修改,例如替换敏感数据
String_sensitive_data = "****";
if (params.containsKey("your_param_key")) {
params.put("your_param_key", String_sensitive_data);
}
return null; // 返回null表示继续执行原SQL,如果返回其他值则会替换SQL
}
}
```
3. 将拦截器注册到MyBatis Plus中。这通常在`mybatis-plus-config.properties`或`application.yml`的配置文件中设置,或者在启动类上启用拦截器。
```yaml
# 如果是在yml配置
mybatis-plus:
global-config:
interceptor:
enabled: true
type: DRUID
interceptors: [com.yourpackage.SqlInterceptor]
# 如果是在properties配置
mybatis-plus.global-config.interceptor.enabled=true
mybatis-plus.global-config.interceptor.type=DRUID
mybatis-plus.global-config.interceptor.interceptors=com.yourpackage.SqlInterceptor
```
现在每次执行SQL查询时,都会经过这个拦截器,你可以在这里修改或替换参数。请注意,你需要确保拦截器中的参数映射与实际的SQL查询参数匹配。
阅读全文