Mybatis-Plus接口BaseMapper与Services使用详解

2022-07-14,,,,

最近在工作开发中遇到一个批量新增修改的处理,我使用的是 mybatis-plus,但是在用的 basemapper 接口里是没有这个方法的,后来发现 service 接口里有这个方法,今天整理一下这2种用法。

一、使用 basemapper 接口

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()可以使用,果断拥抱之。

二、使用 service 接口

除了 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使用详解的详细内容,更多关于mybatis plus接口的资料请关注其它相关文章!

《Mybatis-Plus接口BaseMapper与Services使用详解.doc》

下载本文的Word格式文档,以方便收藏与打印。