SpringBoot 结合Mybatis——Apifox接口演示 基础知识讲解环境配置前置要求生成器SpringBoot语言java类型maven数据库编辑内部全流程Apifox 发请求 ↓ Controller 接收参数 ↓ Service 执行业务逻辑 ↓ Mapper 执行数据库操作 ↓ MySQL 返回数据 ↓ User 实体承接数据 → Result 包装 → JSON 响应知识点普及知识点你需要能解释的内容ControllerURL 如何对应 Java 方法GET、POST、PUT、DELETE 分别做什么参数接收PathVariable接收路径中的 IDRequestBody接收 JSON实体类UserJava 属性如何对应表字段例如createTime对应create_timeService接口与实现类的关系为什么不能只写return nullMyBatis-PlusBaseMapperUser、IServiceUser、ServiceImpl提供哪些基础能力Mapper XMLnamespace、语句id、resultMap如何与接口和实体对应SQL查询、插入、更新、删除以及ORDER BY name DESCJSON 返回Result的code、message、data以及 getter 的作用配置HTTP 端口与 MySQL 端口的区别、数据源连接信息、XML 扫描路径目录演示源代码展示UserControllerpackage com.example.l06_mybatis.controller; import com.example.l06_mybatis.domain.User; import com.example.l06_mybatis.service.UserService; import com.example.l06_mybatis.tools.Result; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.net.URI; import java.util.List; RestController RequestMapping(/api/user) public class UserController { Autowired private UserService userService; GetMapping(/{id}) public ResultUser getUser(PathVariable Long id) { return Result.success(userService.getUserById(id)); } GetMapping(/list) public ResultListUser getUserList() { return Result.success(userService.list()); } GetMapping(/sort) public ResultListUser getAllUserSortByNameDesc() { return Result.success(userService.getAllUserSortByNameDesc()); } PostMapping public ResultBoolean createUser(RequestBody User user) { return Result.success(userService.createUser(user)); } PutMapping() public ResultBoolean updateUser(RequestBody User user) { return Result.success(userService.updateUserById(user)); } DeleteMapping(/{id}) public ResultBoolean deleteUser(PathVariable Long id) { return Result.success(userService.removeUserById(id)); } }Servicepackage com.example.l06_mybatis.service.impl; import com.baomidou.mybatisplus.spring.service.impl.ServiceImpl; import com.example.l06_mybatis.domain.User; import com.example.l06_mybatis.mapper.UserMapper; import com.example.l06_mybatis.service.UserService; import org.springframework.stereotype.Service; import java.util.List; Service public class UserServicelmpl extends ServiceImplUserMapper, User implements UserService { Override public Boolean removeUserById(Long id) { return removeById(id); } Override public Boolean updateUserById(User user) { return updateById(user); } Override public Boolean createUser(User user) { return save(user); } Override public User getUserById(Long id) { return getById(id); } Override public ListUser getAllUserSortByNameDesc() { return baseMapper.getAllUserSortByNameDesc(); } }package com.example.l06_mybatis.service; import com.baomidou.mybatisplus.spring.service.IService; import com.example.l06_mybatis.domain.User; import java.util.List; public interface UserService extends IServiceUser { Boolean removeUserById(Long id); Boolean updateUserById(User user); Boolean createUser(User user); User getUserById(Long id); ListUser getAllUserSortByNameDesc(); }Mapperpackage com.example.l06_mybatis.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.example.l06_mybatis.domain.User; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Select; import java.util.List; /** * user 表的数据访问接口继承常用增删改查方法。 */ Mapper public interface UserMapper extends BaseMapperUser { ListUser selectUser(); Select(SELECT * FROM user ORDER BY name DESC) ListUser getAllUserSortByNameDesc(); }Userpackage com.example.l06_mybatis.domain; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import java.time.LocalDate; import java.time.LocalDateTime; /** * 对应 l06_mybatis 数据库中的 user 表。 */ TableName(user) public class User { // MySQL INT UNSIGNED 使用 Long避免超过 Java Integer 的范围。 TableId(value id, type IdType.AUTO) private Long id; private String name; private LocalDate birthday; private String sex; // application.yml 中的驼峰映射将 create_time 对应到 createTime。 private LocalDateTime createTime; public Long getId() { return id; } public void setId(Long id) { this.id id; } public String getName() { return name; } public void setName(String name) { this.name name; } public LocalDate getBirthday() { return birthday; } public void setBirthday(LocalDate birthday) { this.birthday birthday; } public String getSex() { return sex; } public void setSex(String sex) { this.sex sex; } public LocalDateTime getCreateTime() { return createTime; } public void setCreateTime(LocalDateTime createTime) { this.createTime createTime; } }Resultpackage com.example.l06_mybatis.tools; public class ResultT { private Integer code; private String message; private T data; public static T ResultT success(T data) { ResultT result new ResultT(); result.code 200; result.message success; result.data data; return result; } // public Integer getCode() { return code; } public String getMessage() { return message; } public T getData() { return data; } }UserMapper.xml?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.example.l06_mybatis.mapper.UserMapper resultMap idUserResult typecom.example.l06_mybatis.domain.User id propertyid columnid/ result propertyname columnname/ result propertybirthday columnbirthday/ result propertysex columnsex/ result propertycreateTime columncreate_time/ /resultMap select idselectUser resultMapUserResult SELECT * FROM user ORDER BY id ASC /select /mapperApifox接口演示