欢迎光临
我们一直在努力

Mybatis-Plus接口BaseMapper与Services如何使用

这篇文章主要介绍“Mybatis-Plus接口BaseMapper与Services如何使用”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Mybatis-Plus接口BaseMapper与Services如何使用”文章能帮助大家解决问题。

一、使用 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如何使用”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识,可以关注云搜网行业资讯频道,小编每天都会为大家更新不同的知识点。

赞(0)
【声明】:本博客不参与任何交易,也非中介,仅记录个人感兴趣的主机测评结果和优惠活动,内容均不作直接、间接、法定、约定的保证。访问本博客请务必遵守有关互联网的相关法律、规定与规则。一旦您访问本博客,即表示您已经知晓并接受了此声明通告。