第 7 章:MyBatis 新增、修改、删除接口 + Postman 测试
目标:在现有 User 项目基础上,完成新增用户、修改用户、删除用户接口,掌握 MyBatis 新增 / 更新 / 删除 XML 写法,使用 Postman 发送 JSON 测试
前置:上一节查询接口/user/list可以正常访问
7.1 编写 UserMapper.java 接口
打开 com.zzs.szyt.mapper.UserMapper,追加 3 个方法
package com.zzs.szyt.mapper;
import com.zzs.szyt.entity.User;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface UserMapper {
// 查询全部
List<User> selectAllUser();
// 新增用户
int insertUser(User user);
// 根据id修改用户
int updateUser(User user);
// 根据id删除用户
int deleteUserById(Integer id);
}
返回值 int:代表 SQL 执行后影响数据库的行数,比如新增成功返回 1,失败返回 0
7.2 编写 UserMapper.xml SQL
打开 resources/mapper/UserMapper.xml,在<mapper>标签内追加下面三段 SQL
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.zzs.szyt.mapper.UserMapper">
<select id="selectAllUser" resultType="com.zzs.szyt.entity.User">
SELECT id,name,age FROM user
</select>
<!-- 新增用户 -->
<insert id="insertUser">
INSERT INTO user(name,age) VALUES(#{name},#{age})
</insert>
<!-- 修改用户 -->
<update id="updateUser">
UPDATE user SET name=#{name}, age=#{age} WHERE id=#{id}
</update>
<!-- 根据id删除 -->
<delete id="deleteUserById">
DELETE FROM user WHERE id=#{id}
</delete>
</mapper>
#{name}:MyBatis 的取值语法,会自动防止 SQL 注入,不要写成${}
7.3 在 UserController 新增接口
打开 com.zzs.szyt.controller.UserController.java,新增 3 个接口方法
package com.zzs.szyt.controller;
import com.zzs.szyt.entity.User;
import com.zzs.szyt.mapper.UserMapper;
import jakarta.annotation.Resource;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/user") // 统一接口前缀,简化地址
public class UserController {
@Resource
private UserMapper userMapper;
// 全部查询 GET /user/list
@GetMapping("/list")
public List<User> getUserList(){
return userMapper.selectAllUser();
}
// 新增用户 POST /user/add
@PostMapping("/add")
public String addUser(@RequestBody User user){
int rows = userMapper.insertUser(user);
if(rows > 0){
return "新增成功";
}else{
return "新增失败";
}
}
// 修改用户 PUT /user/update
@PutMapping("/update")
public String updateUser(@RequestBody User user){
int rows = userMapper.updateUser(user);
if(rows > 0){
return "修改成功";
}else{
return "修改失败";
}
}
// 删除用户 DELETE /user/delete/{id}
@DeleteMapping("/delete/{id}")
public String deleteUser(@PathVariable Integer id){
int rows = userMapper.deleteUserById(id);
if(rows > 0){
return "删除成功";
}else{
return "删除失败";
}
}
}
注解说明:
@RequestMapping("/user"):本 Controller 所有接口统一前缀/user@RequestBody:接收 Postman 传来的 JSON 数据,自动封装成 User 对象@PathVariable:从 URL 路径获取参数,例如/user/delete/1拿到 id=1
7.4 Postman 测试 4 个接口
重启项目,依次测试:
- 查询列表 GET 请求:
http://localhost:8080/user/list - 新增用户 POST 请求:
http://localhost:8080/user/add
{
"name":"王五",
"age":25
}
- Body → raw → JSON

- 修改用户 PUT 请求:
http://localhost:8080/user/update
{
"id":3,
"name":"王五修改",
"age":26
}

- 删除用户 DELETE 请求:
http://localhost:8080/user/delete/3

✅ 本章校验清单
- 项目正常启动无报错
- Postman 可以完成 查询、新增、修改、删除 全部操作
- MySQL 数据库中数据同步变化
880

被折叠的 条评论
为什么被折叠?



