前往小程序,Get更优阅读体验!
立即前往
发布
社区首页 >专栏 >Mybatis Plus批量更新,批量插入最佳实践

Mybatis Plus批量更新,批量插入最佳实践

原创
作者头像
用户11264735
修改2024-09-02 14:44:54
修改2024-09-02 14:44:54
1.7K00
代码可运行
举报
运行总次数:0
代码可运行

1、解决什么问题?

再日常业务开发过程中,总是会遇到批量操作数据库的情况,但我们使用Mybatis Plus的基类BaseMapper只为我们提供了批量查询的能力,而批量更新,批量插入等操作却没有提供。作为初学者如果搜索Mybatis Plus如何实现批量更新,批量插入就会出现一大批莫名其妙的解决方案,其实Mybatis Plus也提供了非常简单实现方式。接下来让我们来一起看一下怎么实现。

2、最佳实践

1、首先定义UserService接口并继承Iservice<T>,在Iservice<T>中定义了许多常用的方法

代码语言:javascript
代码运行次数:0
复制
public interface UserService extends IService<UserPo> {

    void updateByIdBatch(List<UserDTO> userDTOs);
}

2、在Mapper中我们可以采用继承ServiceImpl<M extends BaseMapper<T>, T> 的方式,看ServiceImpl的源码就可以发现它实现了Iservice<T>接口,这样我们就可以采用this.saveBatch()实现批量插入,this.updateBatchById()实现批量更新了。如果你的代码中已经有了Mapper类,这种实现方式也是可以兼容的。

代码语言:javascript
代码运行次数:0
复制
public class UserServiceImpl extends ServiceImpl<UserPOMapper, UserPO>  implements UserService{

    @Resource
    private UserPOMapper userPOMapper;

    @Resource
    private UserConverter userConverter;


    @Override
    public void saveBatch(List<UserDTO> userDTOs) {
        this.saveBatch(userConverter.userDTOList2PO(userDTOs));
    }

    @Override
    public void updateByIdBatch(List<UserDTO> userDTOs) {
        this.updateBatchById(userConverter.userDTOList2PO(userDTOs));
    }
    

}

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1、解决什么问题?
  • 2、最佳实践
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档