基于 RuoYi-Vue 3.8.2 实现自定义 User 表 GET 接口实战分享

张开发
2026/4/16 20:22:50 15 分钟阅读

分享文章

基于 RuoYi-Vue 3.8.2 实现自定义 User 表 GET 接口实战分享
大家好今天给大家分享一次完整的实战经验在 RuoYi-Vue 3.8.2 版本中基于自定义 User 表实现仅 GET 接口的开发、测试与部署全过程。整个过程严格遵循 RuoYi 框架规范不涉及新增、修改、删除操作仅聚焦 GET 查询功能适合新手入门练习也可直接作为作业提交参考。实战背景与需求本次实战核心目标基于 RuoYi-Vue 3.8.2 框架开发自定义 User 表的 GET 查询接口专注“查询”功能不涉及任何新增、修改、删除操作确保接口可正常访问、数据可正常返回同时完成代码提交与验证贴合作业要求。整体思路先完成数据库表迁移再按 CSMD 分层开发 GET 接口配置权限放行通过 Postman 测试最终将代码提交至 Gitee全程不破坏原有项目结构。数据库表迁移与验证表结构迁移将自定义 User 表含测试数据迁移至 RuoYi 项目对应的数据库ry-vue 库表结构如下表名user与 RuoYi 原有表区分避免冲突 核心字段id主键、name用户名、age年龄、createTime创建时间 测试数据提前插入 2 条测试数据zhangsan、lisi确保查询时可正常获取。数据验证执行查询语句 select * from user可正常返回 2 条测试数据确认数据库连接正常、表数据无误为后续接口开发奠定基础。按 CSMD 分层开发聚焦 GET 查询功能严格遵循 RuoYi 框架的分层规范开发与 GET 查询相关的代码不涉及任何新增、修改、删除操作具体分层实现如下整体结构如下RuoYi-Vue 3.8.2 项目 ├── ruoyi-system │ └── src │ └── main │ ├── java │ │ └── com │ │ └── ruoyi │ │ └── system │ │ ├── domain │ │ │ └── User.java // 实体类 │ │ ├── mapper │ │ │ ├── UserMapper.java // Mapper接口 │ │ │ └── UserMapper.xml // SQL映射文件 │ │ ├── service │ │ │ ├── IUserService.java // Service接口 │ │ │ └── impl │ │ │ └── UserServiceImpl.java // Service实现类 │ │ └── controller │ │ └── HelloController.java // GET接口控制器 │ └── resources │ └── com │ └── ruoyi │ └── system │ └── mapper │ └── UserMapper.xml // XML配置文件 └── ruoyi-framework └── src └── main └── java └── com └── ruoyi └── framework └── config └── SecurityConfig.java // 权限放行配置Domain 实体层核心与数据库字段对应新建 User.java 实体类继承 RuoYi 框架的 BaseEntity字段与数据库 user 表完全对应包含核心查询所需属性不添加多余业务字段代码如下简化版package com.ruoyi.system.domain; import com.ruoyi.common.core.domain.BaseEntity; import lombok.Data; Data public class User extends BaseEntity { private Long id; // 主键 private String name; // 用户名 private Integer age; // 年龄 private String sex; // 性别1-男0-女 private String createTime;// 创建时间 }Mapper 数据访问层实现 GET 查询功能接口定义UserMapper.java定义查询方法不涉及任何新增、修改、删除方法满足数据查询需求代码如下package com.ruoyi.system.mapper; import com.ruoyi.system.domain.User; import org.apache.ibatis.annotations.Mapper; import java.util.List; Mapper public interface UserMapper { // 查询所有用户数据支撑GET接口功能 ListUser selectUserList(); }映射文件UserMapper.xml配置查询相关 SQL不添加任何新增、修改、删除语句核心代码如下?xml version1.0 encodingUTF-8? !DOCTYPE mapper PUBLIC -//mybatis.org//DTD Mapper 3.0//EN http://mybatis.org/dtd/mybatis-3-mapper.dtd mapper namespacecom.ruoyi.system.mapper.UserMapper !-- 结果集映射与实体类对应 -- resultMap idUserResult typecom.ruoyi.system.domain.User id columnid propertyid/ result columnname propertyname/ result columnage propertyage/ result columncreate_time propertycreateTime/ /resultMap !-- 查询相关SQL支撑GET接口功能 -- select idselectUserList resultMapUserResult select id, name, age, create_time as createTime from user /select /mapper接口定义IUserService.java定义查询相关方法无其他业务逻辑支撑查询功能的实现package com.ruoyi.system.service; import com.ruoyi.system.domain.User; import java.util.List; public interface IUserService { ListUser selectUserList(); // 查询所有用户支撑GET接口 }实现类UserServiceImpl.java注入 Mapper调用查询方法无其他业务逻辑支撑查询功能package com.ruoyi.system.service.impl; import com.ruoyi.system.domain.User; import com.ruoyi.system.mapper.UserMapper; import com.ruoyi.system.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.List; Service public class UserServiceImpl implements IUserService { Autowired private UserMapper userMapper; Override public ListUser selectUserList() { return userMapper.selectUserList(); // 调用查询方法支撑GET接口 } }Controller 控制层HelloController.java新建 HelloController 控制器提供 GET 接口package com.ruoyi.system.controller; import com.ruoyi.common.core.domain.AjaxResult; import com.ruoyi.system.domain.User; import com.ruoyi.system.service.IUserService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; RestController public class HelloController { Autowired private IUserService userService; // GET请求接口实现用户查询功能 GetMapping(/hello) public AjaxResult hello() { ListUser userList userService.selectUserList(); return AjaxResult.success(userList); // 返回查询到的用户数据 } }权限配置SecurityConfig.java在 Security 配置中放行查询接口package com.ruoyi.framework.config; import org.springframework.security.config.annotation.web.builders.HttpSecurity; import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity; import org.springframework.security.config.annotation.web.configuration.WebSecurityConfigurerAdapter; EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdapter { Override protected void configure(HttpSecurity http) throws Exception { http // 放行查询接口其他接口保持原有权限控制 .authorizeRequests() .antMatchers(/hello).permitAll() .anyRequest().authenticated(); } }Postman 测试用例接口地址请求方式测试内容预期结果实际结果http://localhost:8080/helloGET查询所有用户数据返回测试数据状态码 200符合预期Git 提交命令git remote -v git add . git commit -m 完成 User 表 GET 查询接口开发实现查询功能 git push origin main注意事项仅实现 GET 查询功能不涉及增删改操作权限配置仅放行查询接口Git 推送冲突时可使用强制推送Mapper XML 的 DTD 提示问题不影响运行确保 Git 邮箱与 Gitee 账号绑定

更多文章