MyBatisePlus 基于唯一索引批量新增或修改
创始人
2025-05-31 16:27:42

MyBatis-Plus提供了一个便捷的方式基于唯一索引批量新增或修改记录。具体步骤如下:

  1. 在实体类中标注唯一索引,使用@TableIndex注解,例如:

    @TableName("user")
    @TableIndex(name = "idx_username", unique = true, columnList = "username")
    public class User {private Long id;private String username;private String password;// ...
    }
    

    上述代码中,@TableIndex注解表示在user表上创建一个名为idx_username的唯一索引,索引列为username

  2. 在Mapper接口中定义方法,使用@Param注解传递参数,例如:

    public interface UserMapper extends BaseMapper {int batchInsertOrUpdate(@Param("list") List list);
    }
    
  3. 在Mapper XML文件中编写SQL语句,使用ON DUPLICATE KEY UPDATE实现批量新增或修改,例如:

    INSERT INTO user(username, password)VALUES(#{item.username}, #{item.password})ON DUPLICATE KEY UPDATEusername = VALUES(username),password = VALUES(password)
    
    

    上述代码中,使用标签循环插入或更新每个User对象,ON DUPLICATE KEY UPDATE表示如果有唯一索引冲突,则执行更新操作。

  4. 在Service层中调用Mapper方法,例如:

    @Service
    public class UserServiceImpl implements UserService {@Autowiredprivate UserMapper userMapper;@Overridepublic int batchInsertOrUpdate(List list) {return userMapper.batchInsertOrUpdate(list);}
    }
    

这样,我们就可以通过一个方法实现基于唯一索引的批量新增或修改记录了。

相关内容

热门资讯

2025最新消息“顶级娱乐开挂... 您好,顶级娱乐这款游戏可以开挂的,确实是有挂的,通过微信【8198015 】很多玩家在这款游戏中打牌...
2025最新消息“好运互娱开挂... 您好,好运互娱这款游戏可以开挂的,确实是有挂的,通过微信【8198015 】很多玩家在这款游戏中打牌...
2025最新消息“点我棋牌开挂... 您好:点我棋牌这款游戏可以开挂,确实是有挂的,需要了解添加微信【29290261很多玩家在这款游戏中...
2025最新消息“丫丫棋牌开挂... 亲,丫丫棋牌这款游戏可以开挂的,确实是有挂的,很多玩家在这款游戏中打牌都会发现很多用户的牌特别好,总...
游戏攻略心得体会文章攒劲甘肃麻... 您好!欢迎拜访本公司网站,咱们公司是专业研制及出售全国各地辅助软件1.亲,实际上攒劲甘肃麻将确实有挂...