第 7 章:MyBatis 新增、修改、删除接口 + Postman 测试

第 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 个接口

重启项目,依次测试:

  1. 查询列表 GET 请求:http://localhost:8080/user/list
  2. 新增用户 POST 请求:http://localhost:8080/user/add
{
    "name":"王五",
    "age":25
}
  • Body → raw → JSON
    在这里插入图片描述
  1. 修改用户 PUT 请求:http://localhost:8080/user/update
{
    "id":3,
    "name":"王五修改",
    "age":26
}

在这里插入图片描述

  1. 删除用户 DELETE 请求:http://localhost:8080/user/delete/3
    在这里插入图片描述

✅ 本章校验清单

  1. 项目正常启动无报错
  2. Postman 可以完成 查询、新增、修改、删除 全部操作
  3. MySQL 数据库中数据同步变化
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值