这篇文章主要介绍“Mybatis-Plus接口BaseMapper与Services如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mybatis-Plus接口BaseMapper与Services如何使用”文章能帮助大家解决问题。
MyBatis Plus 提供了通用的 Mapper 接口(即 BaseMapper 接口),该接口对应我们的 DAO 层。在该接口中,定义了我们常见的方法签名,这样就可以方便我们对表进行操作。例如:查询(select)、插入(insert)、更新(update)和删除(delete)操作。
以为项目中的代码为例,我有一个实体类User
,需要对其进行CRUD,那么我直接在 DAO 层去继承 BaseMapper 接口即可。
@Mapper public interface UserMapper extends BaseMapper<User> { }
这样我就可以直接使用里面的各种API了,非常的方便。另外,我发现了一个mybatis-plus的简洁教程,可以很方便的查询一些知识点,文末自取。
但是后来在开发过程中,发现BaseMapper
接口中的insert()
不能满足我的需求了,而在Service
接口中,发现有个saveOrUpdateBatch()
可以使用,果断拥抱之。
除了 BaseMapper 接口,MyBatis Plus 还提供了 IService 接口,该接口对应 Service 层。MyBatis Plus 的通用 Service CRUD 实现了 IService 接口,进一步封装 CRUD。为了避免与 BaseMapper 中定义的方法混淆,该接口使用 get(查询单行)、remove(删除)、list(查询集合)和 page(分页)前缀命名的方式进行区别。
这个既然是对应 Service 接口,那么也就要用在 service 层。
还是要处理刚才的User
类,DAO 层仍然是需要的:
@Mapper public interface AddressListMapper extends BaseMapper<User>{ }
然后在 service 层的接口继承IService
,泛型是User
实体类:
public interface AddressListService extends IService<User> { /** * 同步用户信息到数据库 */ void saveUsers(); }
最后在 service 的实现层中,继承ServiceImpl
,泛型中传入mapper
和实体类:
@Service public class AddressListServiceImpl extends ServiceImpl<AddressListMapper, User> implements AddressListService { }
现在就可以使用 mybaits-plus service接口中提供的api了。
我使用的是saveOrUpdateBatch
,这个要注意下,是通过自定义的唯一索引进行批量保存更新的,所以我要去实体类User
中使用@TableId
标记出唯一索性。
/** * 邮箱 */ @TableId private String email;
关于“Mybatis-Plus接口BaseMapper与Services如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注亿速云行业资讯频道,小编每天都会为大家更新不同的知识点。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。