ruoyi vue功能介绍以及完善后端单表user 的CURD 功能代码和测试

ruoyi vue功能介绍

简介

RuoYi-Vue 是一个 Java EE 企业级快速开发平台,基于经典技术组合(Spring Boot、Spring Security、MyBatis、Jwt、Vue),内置模块如:部门管理、角色用户、菜单及按钮授权、数据权限、系统参数、日志管理、代码生成等。在线定时任务配置;支持集群,支持多数据源,支持分布式事务 。

内置功能

  • 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
  • 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  • 岗位管理:配置系统用户所属担任职务。
  • 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
  • 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
  • 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
  • 参数管理:对系统动态配置常用参数。
  • 通知公告:系统通知公告信息发布维护。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 登录日志:系统登录日志记录查询包含登录异常。
  • 在线用户:当前系统中活跃用户状态监控。
  • 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
  • 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
  • 系统接口:根据业务代码自动生成相关的api接口文档。
  • 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
  • 缓存监控:对系统的缓存信息查询,命令统计等。
  • 在线构建器:拖动表单元素生成相应的Vue代码。
  • 连接池监视:监视当期系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。

完善后端单表user 的CURD 功能代码和测试

表单创建可见标题:SpringBoot 结合MyBatis读取MySQL 数据试例-CSDN博客

Controller:

package com.ruoyi.web.controller.system;

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

        import java.util.List;

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

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

    //新增
    @PostMapping("/hello/insert")                          //Post
    public String helloPost(String name ,int age,int sex)
    {
        userService.insertUser(name,age,sex);
        return "add name: "+name + ", age= "+age + ",sex=" + sex;
    }

    @PutMapping("/hello/update")                           //Put
    public String helloPut(int id,String name,int age,int sex)
    {
        userService.updateUsers(id,name,age,sex);
        return "update name:"+ name + ", age=" + age + ",sex=" + sex;

    }

    @DeleteMapping("/hello/{name}")                         //Delete
    public  String helloDel(@PathVariable String name)
    {
        userService.deleteName(name);
        return "delete name: "+name;
    }

Domain:

package com.ruoyi.system.domain;

public class User {
    public int id;
    private String name;
    private int age;
    public int sex;
    public String createTime;

    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 int getSex() {
        return sex;
    }

    public void setSex(int sex) {
        this.sex = sex;
    }

    public String getCreateTime() {
        return createTime;
    }

    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
}


Mapper:

这里创建了一个接口用来引入类

上面为接口下面为类

package com.ruoyi.system.mapper;

import com.ruoyi.system.domain.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserMapper {
    public List<User> selectAllUser();

    //新增
    public void deleteName(String name);

    public void updateUsers(@Param("id") int id, @Param("name") String name, @Param("age") int age, @Param("sex") int sex);

    public void insertUser(@Param("name") String name,@Param("age")int age,@Param("sex") int sex);
}
package com.ruoyi.system.service;

import com.ruoyi.system.domain.User;
import org.apache.ibatis.annotations.Param;

import java.util.List;

public interface UserService {
    public List<User> selectAllUser();

    //新增
    public void deleteName(String name);

    public void updateUsers(int id,String name,int age,int sex);

    public void insertUser(String name,int age,int sex);
}

UserMapper.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.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="sex"  column="sex"   />
        <result property="createTime"  column="create_time"   />
    </resultMap>

    <select id="selectAllUser" resultMap="UserResult">
        select * from user
    </select>
    <!--    新增-->
    <delete id="deleteName">
        delete from user
        where name = #{name}
    </delete>

    <update id="updateUsers">
        <!--        update user-->
        <!--        <trim prefix="SET" suffixOverrides=",">-->
        <!--            <if test="name != null">name = #{name},</if>-->
        <!--            <if test="sex != null">sex = #{sex},</if>-->
        <!--            <if test="age != null">age = #{age},</if>-->
        <!--        </trim>-->
        <!--        where Id = #{id}-->
        update user

        <set>
            <if test="name != null">name = #{name},</if>
            <if test="sex != null">sex = #{sex},</if>
            <if test="age != null">age = #{age},</if>
        </set>
        where id = #{id}
    </update>

    <insert id="insertUser">
        insert into user
        <trim prefix="(" suffix=")" suffixOverrides=",">
            <if test="name != null">name,</if>
            <if test="sex != null">sex,</if>
            <if test="age != null">age,</if>
        </trim>
        <trim prefix="values (" suffix=")" suffixOverrides="," >
            <if test="name != null">#{name},</if>
            <if test="sex != null">#{sex},</if>
            <if test="age != null">#{age},</if>
        </trim>
    </insert>
</mapper>

SecurityConfig.java:

将要使用的接口屏蔽安全拦截


                .antMatchers("system/user/*").anonymous()
                .antMatchers("/hello").anonymous()
                .antMatchers("/hello/insert").anonymous()
                .antMatchers("/hello/update").anonymous()
                .antMatchers("/hello/{name}").anonymous()


Postman 测试接口:

get

put(修改)

/hello/update

delete(删除)

/hello/{name}

post(添加)

/hello/insert

get显示添加成功


参考链接Ruoyi Vue 如何添加单表Read 代码-CSDN博客

总结

网上对mapper.xml作用的理解

一个完整的 Mapper 映射文件,需要有约束头 xml 与 !DOCTYPE ,其次才是 mapper 根元素,最后再是顶级元素,而其中,namespace 属性作为 mapper 的唯一标识,试回忆:

  • 上学时,6年级一班23号,能代表唯一的你。
  • 编写 Java 类时,包名 + 类名,能代表唯一的类。
  • 而如今,我们在 Mybatis 中写的每一段 SQL 语句,同样有唯一的代表方式,那就是「 命名空间标识 + 语句id 」,无论是为了区分业务也好,还是为了拆分服务也好,反正 Mybatis 让每一个 mapper.xml 配备一个唯一命名空间标识。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值