mybatis-plus中包含BaseMapper,Iservice两个接口和ServiceImpl类,BaseMapper 针对dao层的方法封装
CRUD,IService 针对业务逻辑层的封装,需要指定Dao层类和对应的实体类,是在BaseMapper基础上的加强,ServiceImpl
针对业务逻辑层的实现,搞懂三者关系就能搞懂怎么用;

 一般典型的使用例子中,XxImpl类继承自ServiceImpl类,并实例化BaseMapper的子类XxMapper和持久化bean类,实现自定义的XxService接口(继承IService接口),在XxImpl类实现CRUD的增删改查功能,并重写在XxService接口定义的方法;
@Slf4j @Service @DS("ads") public class TbAdsZtCgrxxDayImpl extends
ServiceImpl<TbAdsZtCgrxxDayMapper,TbAdsZtCgrxxDay> implements
TbAdsZtCgrxxDayService { @Autowired private GetResponse getResponse; @Override
public List<TbAdsZtCgrxxDay> selectAllList() { return
this.baseMapper.selectAllList(); } @Override public Future<Boolean>
updateBaseInfo(TbAdsZtCgrxxDay cgr) { String ztmc=cgr.getZzmc();
log.info("当前正在处理的采购人是|{}",ztmc ); try{ String legalname
=getResponse.getBaseInfo(ztmc).get(0).getData().get(0).getLegalName(); String
socialcode=
getResponse.getBaseInfo(ztmc).get(0).getData().get(0).getSocialCode();
cgr.setFrmc(legalname); cgr.setXydm(socialcode); }catch (Exception ex){
log.error("法人或者信用代码有空{}",ex.getMessage()); }finally {
log.info("任务进行中,线程池剩余任务数量为|{}",
CustomMultiThreadingConfig.executor.getThreadPoolExecutor().getQueue().size());
int result = this.baseMapper.updateBaseInfo(cgr); return
AsyncResult.forValue(result>0); } } }
关系如下:

ServiceImpl类持有BaseMapper这个接口的实例,并实现了Iservice这个接口,
所以XxImpl类(业务主要逻辑实现的地方)在继承ServiceImpl类时候可以指定BaseMapper的子接口进行实例化(也就是例子中的TdAdsZtCgrxxDayMapper),而TbAdsZtCgrxxDayService是Iservice接口的子接口,XxImpl类实现了TdAdsZtCgrxxDaySerivice这个接口定义的若干业务逻辑函数;

技术
©2019-2020 Toolsou All rights reserved,
Java开发2020年最新常见面试题整理【Spring源码分析】42-@Conditional详解element-ui踩坑记录神仙面试宝典你有了吗?半月看完25大专题,居然斩获阿里P8offer使用css样式设计一个简单的html登陆界面XCTF攻防世界web新手练习_ 9_command_executionJS中的解构赋值的详解与具体用途Python Web 框架elementui 穿梭框 el-transfer 展示列表内容文字过长ConcurrentHashMap实现原理及源码解析