MyBatis-Plus 通用IService的使用

时间:2025-04-03 09:33:48

MybatisPlus除了通用的Mapper,还有通用的Servcie层,这也减少了相对应的代码工作量,把通用的接口提取到公共。其实按照MybatisPlus的这种思想,可以自己也实现一些通用的Controller。
一、只有通用的Mapper
下面三个类是我们最开始使用mybatisPlus写法,这样只能通过SysMenuMapper 调用一些通用的方法。
SysMenuMapper

package com.komorebi.mapper;

import com.komorebi.entity.SysMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
public interface SysMenuMapper extends BaseMapper<SysMenu>{

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

SysMenuService

package com.komorebi.service;

import com.komorebi.entity.SysMenu;
import com.baomidou.mybatisplus.extension.service.IService;

public interface SysMenuService {
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

SysMenuServiceImpl

package com.komorebi.service.impl;

import com.komorebi.entity.SysMenu;
import com.komorebi.mapper.SysMenuMapper;
import com.komorebi.service.SysMenuService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class SysMenuServiceImpl implements SysMenuService {
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10

二、通用的Iservice

package com.komorebi.mapper;

import com.komorebi.entity.SysMenu;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
public interface SysMenuMapper extends BaseMapper<SysMenu> {

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

SysMenuService 继承了通用IService
SysMenuService extends IService

package com.komorebi.service;

import com.komorebi.entity.SysMenu;
import com.baomidou.mybatisplus.extension.service.IService;

public interface SysMenuService extends IService<SysMenu> {
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

service层需要继承IService,当然实现层也要继承对应的实现类ServiceImpl。

package com.komorebi.service.impl;

import com.komorebi.entity.SysMenu;
import com.komorebi.mapper.SysMenuMapper;
import com.komorebi.service.SysMenuService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
@Service
public class SysMenuServiceImpl extends ServiceImpl<SysMenuMapper, SysMenu> implements SysMenuService {

}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11

讲过上面的定义我们的SysMenuService、SysMenuServiceImpl可以调用一些通用方法。
例如:() =》查询对应SysMenu表的所有信息。
(List) =》参数列表id,返回值SysMenu列表。