💟💟前言
友友们大家好,我是你们的小王同学😗😗
今天给大家打来的是 MybatisPlus开发业务接口
希望能给大家带来有用的知识
觉得小王写的不错的话麻烦动动小手 点赞👍 收藏⭐ 评论📄
小王的主页:小王同学🚗
小王的gitee:小王同学🏩🏩
小王的github:小王同学💦
Mybatis-Plus是一个Mybatis(opens new window)的增强工具,在Mybatis的基础上只做增强不做改变,为简化开发。
官方网站
### 基于Restful风格实现下面的接口
编号 | 接口 | 请求方式 | 请求路径 | 请求参数 | 返回值 |
---|---|---|---|---|---|
1 | 新增用户 | POST | /users | 用户表单实体 | 无 |
2 | 删除用户 | DELETE | /users/{id} | 用户id | 无 |
3 | 根据id查询用户 | GET | /users/{id} | 用户id | 用户vo |
4 | 根据id批量查询 | GET | /user | 用户id集合 | 用户vo集合 |
4 | 根据id扣减余额 | PUT | /users/{id}/deduction/{money} | 用户id余额 | 无 |
首先在maven里配置依赖
<!--swagger依赖-->
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-openapi2-spring-boot-starter</artifactId>
<version>4.1.0</version>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
## 配置swagger信息
# swagger文档
knife4j:
enable: true
openapi:
title: 用户管理接口文档
description: "用户管理接口文档"
email: wxz1234560827@163.com
concat: wxz
url: https://www.itcast.cn
version: v1.0.0
group:
default:
group-name: default
api-rule: package
api-rule-resources:
- com.itheima.mp.controller
在dto包里创建UserDTO
package com.itheima.mp.domain.dto;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.extension.handlers.JacksonTypeHandler;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "用户表单实体")
public class UserFormDTO {
@ApiModelProperty("id")
private Long id;
@ApiModelProperty("用户名")
private String username;
@ApiModelProperty("密码")
private String password;
@ApiModelProperty("注册手机号")
private String phone;
@ApiModelProperty("详细信息,JSON风格")
private String info;
@ApiModelProperty("账户余额")
private Integer balance;
}
在vo包里创建UserVO
package com.itheima.mp.domain.vo;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@ApiModel(description = "用户VO实体")
public class UserVO {
@ApiModelProperty("用户id")
private Long id;
@ApiModelProperty("用户名")
private String username;
@ApiModelProperty("详细信息")
private String info;
@ApiModelProperty("使用状态(1正常 2冻结)")
private Integer status;
@ApiModelProperty("账户余额")
private Integer balance;
}
在controller包里创建UserController类去实现这几个接口的功能
package com.itheima.mp.controller;
import cn.hutool.core.bean.BeanUtil;
import com.itheima.mp.domain.dto.UserFormDTO;
import com.itheima.mp.domain.po.User;
import com.itheima.mp.domain.vo.UserVO;
import com.itheima.mp.service.IUserService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.RequiredArgsConstructor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@Api(tags = "用户管理接口")
@RequestMapping("/users")
@RestController
@RequiredArgsConstructor
public class UserController {
private final IUserService userService;
@ApiOperation("新增用户接口")
@PostMapping
public void saveUSesr(@RequestBody UserFormDTO userDTO) {
// 1. 把dto拷贝到po
User user = BeanUtil.copyProperties(userDTO, User.class);
// 2. 新增
userService.save(user);
}
@ApiOperation("删除用户接口")
@DeleteMapping("{id}")
public void DeleteUSesrById(@ApiParam("用户id") @PathVariable ("id") Long id) {
userService.removeById(id);
}
@ApiOperation("根据id用户查询接口")
@PutMapping("{id}")
public UserVO queryByUserId(@ApiParam("用户id") @PathVariable ("id") Long id) {
// 1.查询用户
User usr = userService.getById(id);
// 2. 把po拷贝成vo
return BeanUtil.copyProperties(usr, UserVO.class);
}
@ApiOperation("根据id批量查询用户接口")
@PutMapping
public List<UserVO> queryByUserIds(@ApiParam("用户id集合") @RequestParam ("ids") List<Long> id) {
// 1.查询用户
List<User> usrs = userService.listByIds(id);
// 2. 把po拷贝成vo
return BeanUtil.copyToList(usrs, UserVO.class);
}
}
我们这时候就可以打开swaager文档去发送json数据
测试
根据id查询用户
接着打开数据库里看看 id 为1 的信息是否是查询的数据
成功查询到一样的数据!!!
根据id批量查询用户
删除用户接口
然后打开查询数据库看看id为1的用户是否已经删除
成功删除id为1的用户信息!!
以上就是王同学给大家带来MybatisPlus
的业务接口功能的实现
如果写的不好的地方麻烦指正一下!!
希望大家能三连奉上!!
码字不易