携手创作,共同成长!这是我参与「掘金日新计划 · 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+中可以直接获取到现成的接口实现
我们常用的接口实现在:
比如创建新的商品接口:
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的进行处理,都是可以的