新手如何配置接口层

647 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第一天,点击查看活动详情

聊聊新手的做接口实现如何开始

梳理基于普通管理的操作实现:

1.基于mybatis——plus来实现:

基于mvc的分层, controller,service,mapper三层

细化分为,五个文件

  • controller的控制层,基于接口的入口,会有具体地址/url的访问路径

  • service的数据转换层,基于接口入参的转化和实际的处理

    但是主要的逻辑过程都在service的实现中serviceImpl中的接口实现下

  • mapper的文件是基于接口行为转化到数据库的层面,持久层

  • mapper.xml 是用来写SQL的

2.主要链路如下

从controller的访问--->service的数据处理--->mapper的操作实现;

这里主要是对于简单一个表进行数据的处理管理的全过程,进行整理

首先呢,我们基于mybatis_plus的自动化代码生成器

(www.mybatis-plus.com/guide/gener…)[代码生成器]

里面有详细的配置文件和信息,我里我就以普通的一个表为例子

CREATE TABLE `good`  (
  `id` bigint(100) NOT NULL COMMENT '商品标识',
  `good_name` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT '商品名称',
  `good_collect_id` bigint(100) NULL DEFAULT NULL COMMENT '商品组标识',
  PRIMARY KEY (`id`) USING BTREE
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = '商品表';
​
SET FOREIGN_KEY_CHECKS = 1;

我们可以得到一个表entity的表结构

import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import lombok.Data;
​
/**
 * 商品表
 * @TableName good
 */
@TableName(value ="good")
@Data
public class Good implements Serializable {
    /**
     * 商品标识
     */
    @TableId
    private Long id;
​
    /**
     * 商品名称
     */
    private String goodName;
​
    /**
     * 商品组标识
     */
    private Long goodCollectId;
}
  • 配置一个控制层controller,商品的GoodController
@RestController
@Api(tags = "商品管理")
@RequestMapping(“商品标识,访问路径”)
@Slf4j
public class GoodController {
​
​
​
​
​
​
​
}
​
​
​
  • service层
public interface GoodService extends IService<Good> {
    boolean addGood(GoodAddVo param);
​
    boolean updateGood(GoodUpdateVo param);
​
    List<GoodVo> getGoodInfoList(GoodQueryVo param);
​
    boolean removeGood(String id);
}

配置IService+中可以直接获取到现成的接口实现

iservice的接口 我们常用的接口实现在:

比如创建新的商品接口:

serviceImpl中基于service的实现

    
@Service
public class GoodServiceImpl extends
    ServiceImpl<GoodMapper, Good>
      implements GoodService {
    }
​
     @Resource
    private GoodService goodService;
​
public boolean addGood(GoodAddVo param) {
​
    RgnGood room = new Good();
   room.setId(IdUtils.nextId(SGN_HOTSOURCESTATION));
    //利用Iservice的添加方法
    return GoodService.save(Good);
}

一般Iservice就已经够用了

也可以使用baseMapper

@Mapper
public interface GoodMapper extends BaseMapper<Good> {
​
}
​
​
   
//在serviceimpl中注入使用
   @Resource
    private  GoodMapper goodMapper;  
​
​
    @Resource
    private GoodService goodService;
​
public boolean addGood(GoodAddVo param) {
​
    RgnGood room = new Good();
   room.setId(IdUtils.nextId(SGN_HOTSOURCESTATION));
    //利用Iservice的添加方法,baseMapper的方法
    return goodMapper.insert(Good);
}

对于系统中的操作,基本的CRUD都是基于这种接口来直接处理实现的,我们既可以使用IService的接口save()添加

也可以使用mapper层的baseMapper的中insert的进行处理,都是可以的