Mybatis-plus中IService接口的使用

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接口关系图

  • 5
    点赞
  • 67
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值