java

关注公众号 jb51net

关闭
首页 > 软件编程 > java > Mybatis-plus中IService接口使用

Mybatis-plus中IService接口的基本使用步骤

作者:白猫与巧克力

Mybatis-plus是一个Mybatis的增强工具,它提供了很多便捷的方法来简化开发,IService是Mybatis-plus提供的通用service接口,封装了常用的数据库操作方法,包括增删改查等,下面这篇文章主要给大家介绍了关于Mybatis-plus中IService接口的基本使用步骤,需要的朋友可以参考下

前言

Mybatis-plus的IService接口:IService接口解释,我们可以看到IService接口就是有一大堆方法接口。

IService的使用:

IService的使用需要另外两个接口的配合:baseMapper和ServiceImpl

第一步:实现basemapper接口

public interface AdminMapper extends BaseMapper<Admin> {
}

第二步:编写service类

public interface AdminService extends IService<Admin> {
}

第三步:编写serviceImpl,ServiceImpl里面是各种的方法实现

好奇的可以点进源码看下,两个泛型需要注意的,第一个是继承basemapper的(AdminMapper),第二个是实体类(Admin)。

public class AdminServiceImpl extends ServiceImpl<AdminMapper,Admin> 
    						  implements AdminService {}
//查看源码后发现ServiceImpl类使用到了BaseMapper接口T和实现类M,并实现了IService接口
public class ServiceImpl<M extends BaseMapper<T>, T> implements IService<T> {...}

第四步:在controller层,我们可以参考IService接口解释或者Mybatis-plus官网的方法解释来调用。

@Autowired
    AdminService adminService;
	void test11(){
		// adminService中有很多方法
        Admin admin = adminService.getById(13);
    }

综合来看,比较合理的解释是:

1、从分层角度来解释,BaseMapper是DAO层的CRUD封装,而IService是业务业务逻辑层的CRUD封装,所以多了批量增、删、改的操作封装,这也比较符合官方指南中的阐述;

2、IService是对BaseMapper的扩展,从BaseMapper、IService、ServiceImpl三者的类关系以及源码可以看出;

此外,个人认为应该还有一个原因,就是IService和BaseMapper提供的是两种实现方式:

如果继承BaseMapper,则不需要去实现其内部方法,依靠mybatis的动态代理即可实现CRUD操作;

而如果自定义IBaseService去继承IService,则需要去实现IService中的方法;

ServiceImpl实现了IService接口

关系图

总结 

到此这篇关于Mybatis-plus中IService接口的基本使用步骤的文章就介绍到这了,更多相关Mybatis-plus中IService接口使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文