0


springBoot + mybatis-plus 实现监听 mysql的数据增删改的监听

在Spring Boot + MyBatis-Plus中实现MySQL数据增删改的监听,可以通过以下步骤:

  1. 添加MyBatis-Plus依赖,在pom.xml文件中添加以下依赖:
<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>${mybatis-plus.version}</version>
</dependency>
  1. 配置MyBatis-Plus,通常在application.yml文件中进行配置:
mybatis-plus:
  # 数据库类型
  db-type: mysql
  # 实体扫描,多个package用逗号或者分号分隔
  typeAliasesPackage: com.example.entity
  # 加载自定义的Mybatis XML映射文件
  mapperLocations: classpath:/mapper/**/*.xml
  # 是否开启SQL打印
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
    map-underscore-to-camel-case: true
  1. 创建监听器类,实现com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor接口。
@Component
public class DataChangeInterceptor implements ISqlParser {

    @Override
    public void parser(MetaObject metaObject) {
        MappedStatement mappedStatement = (MappedStatement) metaObject.getValue("delegate.mappedStatement");
        String sql = mappedStatement.getSqlSource().getBoundSql(metaObject).getSql();
        // 处理SQL语句,检测是否为对指定表进行的增删改操作
        // 如果是,则发送通知给应用程序
    }
}
  1. 在MyBatis-Plus配置中添加拦截器。
@Configuration
public class MybatisPlusConfig {

    @Autowired
    private DataChangeInterceptor dataChangeInterceptor;

    @Bean
    public MybatisPlusInterceptor mybatisPlusInterceptor() {
        MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();
        interceptor.addInnerInterceptor(dataChangeInterceptor);
        return interceptor;
    }
}
  1. 对需要进行监听操作的实体类添加@TableLogic注解,启用逻辑删除功能。
@Data
@TableName("user")
public class User {

    @TableId(type = IdType.AUTO)
    private Long id;

    private String name;
    
    @TableLogic
    private Integer deleted;
}

以上就是使用Spring Boot + MyBatis-Plus实现MySQL数据增删改的监听的基本步骤。需要注意的是,如果不使用逻辑删除功能,则无法检测到数据删除操作。


本文转载自: https://blog.csdn.net/flymoringbird/article/details/130102367
版权归原作者 flymorningbird 所有, 如有侵权,请联系我们删除。

“springBoot + mybatis-plus 实现监听 mysql的数据增删改的监听”的评论:

还没有评论