一、背景
再数据同步或者幂等场景下,常常需要设置唯一索引来避免重复请求,select and update效率低,且并发时还是会报错,并不友好,那么可以用Mysql的Insert ignore语法来优化。
MybatisPlus官方并没有针此处场景进行支持
二、环境
com.baomidou
mybatis-plus-boot-starter
3.2.0
com.baomidou
mybatis-plus-generator
三、注入自定义批量插入sql
因为只需要改造insertBatchSomeColumn方法,那直接CV就好
insertBatchSomeColumn方法属于mybatis plus官方扩展包中
sql模板
public class InsertIgnoreBatchAllColumn extends AbstractMethod {
/**
* mapper 对应的方法名
*/
private static final String MAPPER_METHOD = "insertIgnoreBatchAllColumn";
/**
* 字段筛选条件
*/
@Setter
@Accessors(chain = true)
private Predicate predicate;
@SuppressWarnings("Duplicates")
@Override
public MappedStatement injectMappedState