mybatisplus扩展basemapper,mybatis-plus 返回map
最近在工作开发中遇到一个批量添加修改的过程。我用的是mybatis-plus,但是用的BaseMapper接口没有这个方法。后来我在服务接口里发现了这个方法。今天我就来梳理一下这两种用法。
一、使用 BaseMapper 接口
MyBatis Plus提供了一个通用映射器接口(即BaseMapper接口),它对应于我们的DAO层。在这个接口中,我们定义了我们常用的方法签名,这样我们就可以方便地操作这个表。比如查询(select)、插入(insert)、更新(update)和删除(delete)操作。
以项目中的代码为例。我有一个实体类User,需要是CRUD,所以可以直接继承DAO层的BaseMapper接口。
@ Mapper公共接口用户映射器扩展BaseMapper User {}这样我就可以直接在里面使用各种API了,非常方便。另外我找了一个mybatis-plus的简明教程,可以很方便的查询一些知识点,文末自己带。
但是后来在开发过程中,我发现BaseMapper接口中的insert()已经不能满足我的需求,而在服务接口中,我发现了一个可以使用的saveOrUpdateBatch(),于是我果断的拥抱了它。
00-1010除了BaseMapper接口,MyBatis Plus还提供IService接口,对应的是服务层。MyBatis Plus的通用服务CRUD实现了IService接口,进一步封装了CRUD。为了避免与BaseMapper中定义的方法混淆,这个接口通过名为get(查询单行)、remove(删除)、list(查询集)和page(分页)的前缀来区分。
既然这是对应的服务接口,那么也应该用在服务层。
还是要处理刚才的用户类,还是需要DAO层:
@ mapper公共接口地址列表映射器扩展basemapper User {}然后在服务层的接口继承IService,泛型是用户实体类:
接口地址列表服务扩展了iserviceuser {/* * *将用户信息同步到数据库*/void save users();}最后,在服务的实现层,继承了ServiceImpl,并在泛型中引入了mapper和entity类:
@ ServicePublic类AddressListServiceImpl扩展ServiceImplAddressListMapper,User实现AddressListService {}现在可以使用mybaits-plus服务接口中提供的api了。
我用的是saveOrUpdateBatch。需要注意的是,这个是通过自定义的唯一索引来批量保存和更新的,所以我准备在实体类User中使用@TableId来标记唯一的那个。
/* * * email */@TableId私有字符串email;最后放上教程链接:https:///article/222180.htm。
以上是对Mybatis-Plus接口底图和服务使用的详细说明。有关我的Batis-Plus接口的更多信息,请关注与盛行IT相关的其他文章!
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。