首页 > 其他分享 >Ruoyi-Vue后端单表user 的CURD 功能代码和测试

Ruoyi-Vue后端单表user 的CURD 功能代码和测试

时间:2024-11-06 18:15:04浏览次数:5  
标签:Vue int Ruoyi id CURD User import public user

目录

一.创建或导入user表

在RuoYi-Vue数据库导入user.sql文件,或者自己新建user文件
​​​​​​​​​​

二.添加代码

1.User

在这里插入图片描述
User类用于表示用户信息:

字段:

public int id;:这是一个公开的字段,表示用户的ID,用作数据库的主键。

private String name;:私有字段,表示用户的姓名。私有字段的使用是为了封装和保护数据,只能通过getter和setter方法访问。

private int age;:私有字段,表示用户的年龄,同样只能通过getter和setter方法访问。

public String create_time;:公开字段,表示用户的创建时间。

方法:

getName(), getAge(), getId(), getcreate_time():这些公共的getter方法允许外部代码获取私有字段的值。

setName(String name), setAge(int age), setId(int id), setcreate_time(String create_time):这些公共的setter方法允许外部代码设置私有字段的值。

toString方法:@Override public String toString() 方法重写了Object类的toString方法,提供了一种字符串表示形式,方便打印和调试User对象。
package com.ruoyi.system.domain;


public class User {
    public int id;
    private String name;
    private int age;
    public String create_time;

    public String getName() {
        return name;
    }

    public int getAge() {

        return age;
    }

    public void setAge(int age) {

        this.age = age;
    }

    public void setName(String name) {

        this.name = name;
    }

    public int getId() {

        return id;
    }

    public void setId(int id) {

        this.id = id;
    }


    public String getcreate_time() {

        return create_time;
    }

    public void setcreate_time(String create_time) {

        this.create_time = create_time;
    }

    @Override
    public String toString() {
        return "User{" +
                "id='" + id + '\'' +
                ", name=" + name +
                ", age=" + age +
                ", create_time=" + create_time +
                '}';
    }
}

2.UserMapper

在这里插入图片描述
这个UserMapper接口是Java中使用MyBatis框架进行数据库操作的一部分,这个接口定义了基本的CRUD(创建、读取、更新、删除)操作:

注解:

@Mapper:这是MyBatis的注解,用于标识这个接口是一个MyBatis的Mapper接口,MyBatis会为这个接口生成一个代理实现类,用于执行数据库操作。

@Repository:这是Spring框架的注解,用于标识这个接口是一个数据访问对象(Repository),通常用于持久化操作。

方法:

public List<User> selectAllUser();:这个方法用于查询数据库中的所有用户信息,并返回一个包含User对象的列表。

int insertUser(User user);:这个方法用于将一个User对象插入到数据库中,并返回插入操作影响的行数。

int updateUser(User user);:这个方法用于更新数据库中的一个User对象,并返回更新操作影响的行数。

int deleteUser(@Param("id") Integer id);:这个方法用于根据用户ID删除数据库中的一个User对象,并返回删除操作影响的行数。@Param("id")注解用于指定方法参数作为MyBatis查询语句中的参数名。
package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.User;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;

@Mapper
@Repository
public interface UserMapper {
    public List<User> selectAllUser();
    int insertUser(User user);
    int updateUser(User user);
    int deleteUser(@Param("id") Integer id);
}

3.UserService

在这里插入图片描述

UserService类是Java中使用Spring框架和MyBatis框架进行业务逻辑处理的一部分:

依赖注入:

@Autowired:这是Spring框架的注解,用于自动注入Spring容器中的Bean。在这里,它用于注入UserMapper接口的实现。

private UserMapper userMapper;:这是一个私有成员变量,用于存储注入的UserMapper实例。

方法:

public List<User> selectAllUser():这个方法调用userMapper的selectAllUser方法,用于获取数据库中的所有用户信息,并返回一个包含User对象的列表。

public int delete(@Param("id") int id):这个方法调用userMapper的deleteUser方法,用于根据用户ID删除数据库中的一个User对象,并返回删除操作影响的行数。

public int update(User user):这个方法调用userMapper的updateUser方法,用于更新数据库中的一个User对象,并返回更新操作影响的行数。

public int save(User user):这个方法调用userMapper的insertUser方法,用于将一个User对象插入到数据库中,并返回插入操作影响的行数。
package com.ruoyi.system.service.impl;

import com.ruoyi.system.domain.User;
import com.ruoyi.system.mapper.UserMapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class UserService {
    @Autowired
    private UserMapper userMapper;
    public List<User> selectAllUser(){
        return userMapper.selectAllUser();
    }
    public int delete(@Param("id") int id){
        return userMapper.deleteUser(id);
    }
    public int update(User user){
        return userMapper.updateUser(user);
    }
     public int save(User user){
        return userMapper.insertUser(user);
     }
}

4.HelloController

在这里插入图片描述
HelloController类是一个Spring Boot应用中的控制器类,用于处理HTTP请求并与服务层交互:

注解:

@RestController:这是Spring框架的注解,用于标识这个类是一个REST控制器,它会自动处理HTTP请求和响应。

@Autowired:这是Spring框架的注解,用于自动注入Spring容器中的Bean。在这里,它用于注入UserService类的实例。

依赖注入:

private UserService userService;:这是一个私有成员变量,用于存储注入的UserService实例。

请求处理方法:

@GetMapping("/get"):这是一个GET请求的处理方法,当访问/get路径时,会调用userService.selectAllUser()方法获取所有用户信息,并返回这些信息。

@PostMapping("/insert"):这是一个POST请求的处理方法,当向/insert路径发送POST请求时,会调用userService.save(user)方法保存用户信息,并返回插入操作影响的行数。

@PutMapping("/update"):这是一个PUT请求的处理方法,当向/update路径发送PUT请求时,会调用userService.update(user)方法更新用户信息,并返回更新操作影响的行数。

@DeleteMapping("/delete/{id}"):这是一个DELETE请求的处理方法,当向/delete/{id}路径发送DELETE请求时,会调用userService.delete(id)方法删除指定ID的用户,并返回删除操作影响的行数。

请求体和路径变量:

@RequestBody:这个注解用于将客户端发送的HTTP请求体(JSON格式)映射到Java对象。

@PathVariable:这个注解用于将URL中的路径变量(如{id})映射到控制器方法的参数。
package com.ruoyi.web.controller.system;

import com.ruoyi.system.domain.User;
import com.ruoyi.system.service.impl.UserService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

import javax.validation.Valid;
import java.util.List;

@RestController
public class HelloController {
    @Autowired
    private UserService userService;

    @GetMapping("/get")
    public List<User> hello(){
        return userService.selectAllUser();
    }

    @PostMapping("/insert")
    public Integer save(@RequestBody User user){
        return userService.save(user);
    }

    @PutMapping("/update")
    public Integer update(@RequestBody User user){
        return userService.update(user);
    }

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

5.UserMapper.mxl编辑

在这里插入图片描述

<?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.ruoyi.system.mapper.UserMapper">

    <resultMap id="UserResult" type="User">
        <id     property="id"   column="id"     />
        <result property="name" column="name"   />
        <result property="age"  column="age"   />
        <result property="create_time"  column="create_time"   />
    </resultMap>

    <!--	查询所有用户信息-->
    <select id="selectAllUser" resultMap="UserResult">
        select * from user
    </select>

    <!--     插入用户信息-->
    <insert id="insertUser" parameterType="User">
        INSERT into user(name,age,create_time) VALUES (#{name},#{age},#{create_time})
    </insert>

    <!--	根据id删除信息-->
    <delete id="deleteUser" parameterType="int">
        DELETE from user where id=#{id}
    </delete>

    <update id="updateUser" parameterType="User">
        UPDATE user
        <set>
            <if test="name !=null">
                name=#{name},
            </if>
            <if test="age !=null">
                age=#{age},
            </if>
            <if test="create_time !=null">
                create_time=#{create_time}
            </if>
        </set>
        <where>
            id=#{id}
        </where>
    </update>
</mapper>

三.屏蔽新加接口安全防护策略​编辑

打开SecurityConfig文件
在这里插入图片描述

在.antiMatchers的()中添加等会测试用的网址,否则测试时会被屏蔽
在这里插入图片描述

网址按照自己在HelloController中的定义填入
在这里插入图片描述

四.PostMan测试

Get查询

请添加图片描述

Post添加

请添加图片描述
返回1时说明添加成功,此时重新Get可以看到成功添加了一个id为6的人

请添加图片描述

Put修改

请添加图片描述
返回1说明修改成功,重新get可以看到id为6的人的信息被修改了
请添加图片描述

Delete删除

请添加图片描述

返回1说明删除成功,此时重新get可以看到id为2的lisi被删除了。

请添加图片描述

五.实验中遇到的问题及解决方案

1.“error”: “Not Found”

在这里插入图片描述
在HelloController中添加@ResrController即可解决
在这里插入图片描述

2.Required request body is missing: …

在这里插入图片描述
在这里插入图片描述

3. Invalid bound statement (not found): …

在这里插入图片描述
检查UserMapper.xml和UserMapper.java中红框标记的代码是否都能一一对应,如果有不对应的只需修改成对应的即可解决报错
在这里插入图片描述

在这里插入图片描述

4.认证失败,无法访问系统资源

1.检查是否是因为网址输入错误导致的
在这里插入图片描述
2.检查SecurityConfig中添加进去的网址和HelloController中的网址是否一一对应
在这里插入图片描述
在这里插入图片描述

标签:Vue,int,Ruoyi,id,CURD,User,import,public,user
From: https://blog.csdn.net/HUMGAMING/article/details/143574454

相关文章