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

 更新时间:2023年06月01日 09:59:39   作者:白猫与巧克力  
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接口使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java实现导出word表格的示例详解

    Java实现导出word表格的示例详解

    这篇文章主要为大家详细介绍了如何利用Java语言导出word表格功能,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以参考一下
    2022-12-12
  • 详解Springboot整合Dubbo之代码集成和发布

    详解Springboot整合Dubbo之代码集成和发布

    本篇文章主要介绍了Springboot整合Dubbo之代码集成和发布,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-12-12
  • 了解JAVA并发工具常用设计套路

    了解JAVA并发工具常用设计套路

    这篇文章主要介绍了了解JAVA并发工具常用设计套路,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,,需要的朋友可以参考下
    2019-06-06
  • maven导入本地jar包的三种方式

    maven导入本地jar包的三种方式

    本文主要介绍了maven导入本地jar包的三种方式, 文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2024-04-04
  • Idea打不了断点如何解决

    Idea打不了断点如何解决

    这篇文章主要介绍了Idea打不了断点如何解决的问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-03-03
  • SpringDataJpa的@Query注解报错的解决

    SpringDataJpa的@Query注解报错的解决

    这篇文章主要介绍了SpringDataJpa的@Query注解报错的解决方案,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-12-12
  • mybatis 返回Integer,Double,String等类型的数据操作

    mybatis 返回Integer,Double,String等类型的数据操作

    这篇文章主要介绍了mybatis 返回Integer,Double,String等类型的数据操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • 深入理解ContextClassLoader加载器

    深入理解ContextClassLoader加载器

    这篇文章主要介绍了深入理解ContextClassLoader加载器,Thread context class loader存在的目的主要是为了解决parent delegation机制下无法干净的解决的问题,需要的朋友可以参考下
    2023-10-10
  • 基于Java事件监听编写一个中秋猜灯谜小游戏

    基于Java事件监听编写一个中秋猜灯谜小游戏

    众所周知,JavaSwing是Java中关于窗口开发的一个工具包,可以开发一些窗口程序,然后由于工具包的一些限制,导致Java在窗口开发商并没有太多优势,不过,在JavaSwing中关于事件的监听机制是我们需要重点掌握的内容,本文将基于Java事件监听编写一个中秋猜灯谜小游戏
    2023-09-09
  • idea2020.3配置maven环境并配置Tomcat的详细教程

    idea2020.3配置maven环境并配置Tomcat的详细教程

    这篇文章主要介绍了idea2020.3配置maven环境并配置Tomcat的详细教程,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03

最新评论