Springboot后台管理系统_SpringBoot实现增删改查

作者: Cathy 分类: 项目实践 发布时间: 2022-03-23 17:33

SpringBoot实现增删改查

实现新增

UserController

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @PostMapping
    public Integer save(@RequestBody User user){
        //@RequestBody将前台json转换为user对象
        return userMapper.insert(user);
    }

    @GetMapping
    public List<User> index(){
        return userMapper.findAll();
    }
}

UserMapper

@Insert("INSERT into sys_user(username,password,nickname,email,phone,address) VALUES (#{username},#{password},#{nickname},#{email},#{phone},#{address});")
int insert(User user);

SQL


INSERT into sys_user(username,password,nickname,email,phone,address) 
VALUES("zhu","123456","猪头","zhu@qq.com","13677798889","高老庄");

postman测试接口

实现修改

进行判断用户的id是否为空,来分清楚是新增还是修改
UserController

@RestController
@RequestMapping("/user")
public class UserController {

    @Autowired
    private UserMapper userMapper;

    @Autowired
    private UserService userService;

    /**
     * 新增 or 更新
     */
    @PostMapping
    public Integer save(@RequestBody User user){
        //@RequestBody将前台json转换为user对象
        return userService.save(user);
    }

    @GetMapping
    public List<User> index(){
        return userMapper.findAll();
    }
}

UserService

@Service
public class UserService {

    @Autowired
    private UserMapper userMapper;

    public int save(User user){
        if(user.getId() == null){
            //user没有id,表示是新增
            return userMapper.insert(user);
        }else{
            //否则,为更新
            return userMapper.update(user);
        }
    }

UserMapper

@Mapper
public interface UserMapper {

    /***
     * 查询所有数据
     * @return List<User>
     */
    @Select("select * from sys_user")
    List<User> findAll();

    /**
     * 添加数据
     * @param user
     * @return
     */
    @Insert("INSERT into sys_user(username,password,nickname,email,phone,address) VALUES (#{username},#{password},#{nickname},#{email},#{phone},#{address})")
    int insert(User user);

    /**
     * 更新数据
     * @param user
     * @return
     */
    int update(User user);
}

为了防止修改时,将一些数据置空,使用动态sql
User.xml

<?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.example.springboot.mapper.UserMapper">
    <update id="update">
        update sys_user
        <set>
            <if test="username != null">
                username=#{username},
            </if>
<!--            <if test="password != null">-->
<!--                password=#{password}-->
<!--            </if>-->
            <if test="nickname != null">
                nickname=#{nickname},
            </if>
            <if test="email != null">
                email=#{email},
            </if>
            <if test="phone != null">
                phone=#{phone},
            </if>
            <if test="address != null">
                address=#{address}
            </if>

        </set>
        <where>
            id = #{id}
        </where>
    </update>
</mapper>

使用postman测试

添加配置文件

mybatis:
  mapper-locations: mapper/*.xml

配置文件 增加控制台输出显示

mybatis:
  mapper-locations: mapper/*.xml #扫描所有mybatis的xml文件
  configuration:
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl

删除

UserController

@DeleteMapping("/{id}")
public Integer delete(@PathVariable Integer id){
    return userMapper.deleteById(id);
}

UserMapper

@Delete("delete from sys_user where id = #{id}")
Integer deleteById(@Param("id") Integer id);

测试

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注