4.3 服务端(Cursor)-接口开发(员工管理)

简介: 基于SpringBoot+Mybatis+PageHelper,使用JDK1.8+新语法,开发员工管理功能,涵盖分页查询、新增、修改、删除、详情查看及全量查询6大接口,关联员工表与工作经历表,实现高效RESTful API交互,支持多条件筛选与批量操作。

编写提示语
在部门管理的基础之上,这里我们直接编写提示语即可
请根据提供的表结构、接口文档 以及页面原型和需求说明(图片),基于 SpringBoot+Mybatis+PageHelper 帮我完成员工管理的功能接口开发(使用JDK1.8之后的新语法)。

  1. 要操作的是员工表emp 以及员工的工作经历表 emp_expr,具体的表结构如下:
    CREATE TABLE emp (
    id INT AUTO_INCREMENT PRIMARY KEY COMMENT '员工ID',
    username VARCHAR(20) NOT NULL UNIQUE COMMENT '用户名(2-20位)',
    password VARCHAR(64) DEFAULT '123456' COMMENT '登录密码',
    name VARCHAR(10) NOT NULL COMMENT '姓名(2-10位)',
    gender TINYINT COMMENT '性别, 1: 男, 2: 女',
    phone CHAR(11) NOT NULL UNIQUE COMMENT '手机号(11位)',
    position TINYINT COMMENT '职位, 1: 班主任, 2: 讲师, 3: 学工主管, 4: 教研主管, 5: 咨询师',
    salary INT COMMENT '薪资(整数存储)',
    image VARCHAR(255) COMMENT '头像路径',
    hire_date DATE COMMENT '入职日期',
    dept_id INT COMMENT '所属部门ID',
    create_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '创建时间',
    update_time DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '最后操作时间'
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工信息表';

CREATE TABLE emp_expr (
id INT AUTO_INCREMENT PRIMARY KEY COMMENT '经历ID',
emp_id INT COMMENT '关联员工的ID',
company VARCHAR(50) COMMENT '公司名称',
position VARCHAR(50) COMMENT '担任职位',
start_date DATE COMMENT '开始日期',
end_date DATE COMMENT '结束日期'
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='员工工作经历表';

  1. 员工管理中一共包含6个接口,具体的接口信息如下:
    2.1 员工列表查询

      请求路径:/emps
      请求方式:GET
      请求参数:
          name: 姓名,可选
          gender: 性别,可选
          begin: 入职日期的开始时间,可选
          end: 入职日期的结束时间,可选
          page: 页码,默认1
          pageSize: 每页展示记录数,默认10
      请求样例:
          /emps?page=1&pageSize=10
          /emps?name=张&page=1&pageSize=10
          /emps?gender=1&page=1&pageSize=10
          /emps?name=张&gender=1&page=1&pageSize=10
          /emps?name=张&gender=1&begin=2007-09-01&end=2022-09-01&page=1&pageSize=10
      响应数据格式:
          {
            "code": 1,
            "msg": "success",
            "data": {
              "total": 2,
              "rows": [
                 {
                  "id": 1,
                  "username": "jinyong",
                  "name": "金庸",
                  "gender": 1,
                  "image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2022-09-02-00-27-53B.jpg",
                  "position": 2,
                  "salary": 8000,
                  "hireDate": "2015-01-01",
                  "deptId": 2,
                  "deptName": "教研部",
                  "createTime": "2022-09-01T23:06:30",
                  "updateTime": "2022-09-02T00:29:04"
                },
                {
                  "id": 2,
                  "username": "zhangwuji",
                  "name": "张无忌",
                  "gender": 1,
                  "image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2022-09-02-00-27-53B.jpg",
                  "position": 2,
                  "salary": 6000,
                  "hireDate": "2015-01-01",
                  "deptId": 2,
                  "deptName": "教研部",
                  "createTime": "2022-09-01T23:06:30",
                  "updateTime": "2022-09-02T00:29:04"
                }
              ]
            }
          }
    
     2.2 删除员工
         请求路径:/emps
         请求方式:DELETE
         请求参数:ids ,为路径参数
         请求样例:/emps?ids=1,2,3
         响应数据格式:
             {
                 "code":1,
                 "msg":"success",
                 "data":null
             }
    
     2.3 添加员工
         请求路径:/emps
         请求方式:POST
         请求样例:
             {
               "image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2022-09-03-07-37-38222.jpg",
               "username": "linpingzhi",
               "name": "林平之",
               "gender": 1,
               "position": 1,
               "hireDate": "2022-09-18",
               "deptId": 1,
               "phone": "18809091234",
               "salary": 8000,
               "exprList": [
                   {
                      "company": "百度科技股份有限公司",
                      "position": "java开发",
                      "startDate": "2012-07-01",
                      "endDate": "2019-03-03"
                   },
                   {
                      "company": "阿里巴巴科技股份有限公司",
                      "position": "架构师",
                      "startDate": "2019-03-15",
                      "endDate": "2023-03-01"
                   }
                ]
             }
         响应数据格式:
             {
                 "code":1,
                 "msg":"success",
                 "data":null
             }
    
     2.4 根据ID查询
         请求路径:/emps/{id}
         请求方式:GET
         请求参数:id ,为路径参数
         请求样例:/emps/1, /emps/2
         响应数据格式:
             {
               "code": 1,
               "msg": "success",
               "data": {
                 "id": 2,
                 "username": "zhangwuji",
                 "name": "张无忌",
                 "gender": 1,
                 "image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2022-09-02-00-27-53B.jpg",
                 "position": 2,
                 "salary": 8000,
                 "hireDate": "2015-01-01",
                 "deptId": 2,
                 "createTime": "2022-09-01T23:06:30",
                 "updateTime": "2022-09-02T00:29:04",
                 "exprList": [
                   {
                     "id": 1,
                     "startDate": "2012-07-01",
                     "endDate": "2019-03-03"
                     "company": "百度科技股份有限公司"
                     "position": "java开发",
                     "empId": 2
                   },
                   {
                     "id": 2,
                     "startDate": "2019-3-15",
                     "endDate": "2023-03-01"
                     "company": "阿里巴巴科技股份有限公司"
                     "position": "架构师",
                     "empId": 2
                   }
                 ]
               }
             }
    
     2.5 修改员工
         请求路径:/emps
         请求方式:PUT
         请求样例:
             {
                 "id": 2,
                 "username": "zhangwuji",
                 "password": "123456",
                 "name": "张无忌",
                 "gender": 1,
                 "image": "https://web-framework.oss-cn-hangzhou.aliyuncs.com/2022-09-02-00-27-53B.jpg",
                 "position": 2,
                 "salary": 8000,
                 "hireDate": "2015-01-01",
                 "deptId": 2,
                 "createTime": "2022-09-01T23:06:30",
                 "updateTime": "2022-09-02T00:29:04",
                 "exprList": [
                   {
                     "id": 1,
                     "startDate": "2012-07-01",
                     "endDate": "2015-06-20"
                     "company": "中软国际股份有限公司"
                     "position": "java开发",
                     "empId": 2
                   },
                   {
                     "id": 2,
                     "startDate": "2015-07-01",
                     "endDate": "2019-03-03"
                     "company": "百度科技股份有限公司"
                     "position": "java开发",
                     "empId": 2
                   },
                   {
                     "id": 3,
                     "startDate": "2019-3-15",
                     "endDate": "2023-03-01"
                     "company": "阿里巴巴科技股份有限公司"
                     "position": "架构师",
                     "empId": 2
                   }
                 ]
               }
         响应数据格式:
             {
                 "code":1,
                 "msg":"success",
                 "data":null
             }
    
     2.6 查询全部员工
         请求路径:/emps/list
         请求方式:GET
         请求参数:无
         响应数据格式:
             {
               "code": 1,
               "msg": "success",
               "data": [
                 {
                   "id": 21,
                   "username": "zcc",
                   "password": "123456",
                   "name": "周星驰",
                   "gender": 1,
                   "image": "https://web-65.oss-cn-beijing.aliyuncs.com/99c143e9-0241-41f3-bc55-dd5e4e0824f4.jpg",
                   "position": 1,
                   "salary": 8000,
                   "hireDate": "2023-04-23",
                   "deptId": 2,
                   "createTime": "2023-05-26T17:25:01",
                   "updateTime": "2023-06-04T19:25:15"
                 },
                 {
                   "id": 6,
                   "username": "xiaozhao",
                   "password": "123456",
                   "name": "小昭",
                   "gender": 2,
                   "image": "https://web-65.oss-cn-beijing.aliyuncs.com/da94dc38-f165-480c-b8b7-0b3f4bcd1602.jpg",
                   "position": 3,
                   "salary": 8000,
                   "hireDate": "2013-09-05",
                   "deptId": 1,
                   "createTime": "2023-04-07T11:16:00",
                   "updateTime": "2023-04-14T08:22:41"
                 }
               ]
             }
    

    执行提示语
    因为这里我们额外增加了需求说明的描述,所以需要多上传一个文件,操作细节如下:

选择完毕之后,就可以提交生成代码了

代码运行
两个,依次点击删除一下

然后再次打开maven执行命令窗口:

输入命令执行:mvn spring-boot:run
但是这一次启动,你会发现存在大量报错信息:

现在有了Cursor,我们解决bug的速度将会更快,直接复制所有的错误信息,粘贴到右下角,输入提示词

然后他会快速给你一些修正建议,确认无误后点击Accept All:

然后再次启动项目,立马成功。不得不惊叹AI解决BUG的速度,如此之高效

代码测试
● 分页查询员工

● 删除员工

● 新增员工

其余的就不再一一测试

目录
相关文章
|
3天前
|
存储 搜索推荐 定位技术
14 | 空间检索(下):「查找最近的加油站」和「查找附近的人」有何不同?
本文探讨了在动态查询范围内高效检索“最近的k个目标”的方案。针对GeoHash编码的局限性,提出利用四叉树和前缀树等树形结构,实现空间的层次化划分与快速范围扩展。通过非满四叉树优化存储,避免稀疏数据下的空间浪费,并以前缀树支持GeoHash字符串的高效索引。最终实现了查询范围动态调整时的高性能检索,适用于加油站、医院等“最近”需求场景。
24 0
|
缓存 JavaScript Java
SpringBoot集成onlyoffice实现word文档编辑保存
SpringBoot集成onlyoffice实现word文档编辑保存
2490 0
|
3天前
|
存储 API 对象存储
4.4 服务端(Cursor)-接口开发(文件上传)
Sealos开通对象存储服务,首次使用需创建Bucket并填写名称。通过Access Key、Secret Key等信息配置对象存储,结合API实现文件上传功能,支持本地文件上传与管理,详情参考操作指南。
32 1
|
3天前
|
存储 自然语言处理 分布式计算
08 | 索引构建:搜索引擎如何为万亿级别网站生成索引?
针对超大规模数据场景,如搜索引擎需处理万亿级网页,倒排索引远超内存容量。本文介绍通过分治思想将文档集拆分为小块,在内存中构建局部倒排索引,再写入磁盘生成有序临时文件,最后利用多路归并技术合并为全局倒排索引。该过程可迁移至MapReduce框架实现分布式加速。检索时,优先将词典加载至内存(如哈希表或FST),结合B+树或跳表等结构高效访问磁盘中的posting list,辅以缓存优化IO。核心理念是“数据尽量入内存”与“分而治之”,兼顾效率与扩展性。
15 1
|
3天前
|
JSON 关系型数据库 MySQL
4.2 服务端(Cursor)-接口开发(部门管理)
基于SpringBoot+Mybatis+PageHelper实现部门管理功能,涵盖查询、新增、修改、删除接口。使用JDK8+语法,连接内网MySQL数据库,完成dept表操作,响应标准JSON格式数据,适配前端调用需求。(239字)
20 0
|
3天前
|
机器学习/深度学习 人工智能 自然语言处理
Chap01. 认识AI
本文介绍AI核心概念与大模型开发原理,涵盖人工智能发展历程及Transformer神经网络的关键作用。详解其注意力机制如何提升信息处理智能,并解析大语言模型(LLM)如何通过持续生成实现连贯文本输出,帮助理解GPT等模型的工作机制。
22 0
|
3天前
|
机器学习/深度学习 数据采集 自然语言处理
18 | 搜索引擎:输入搜索词以后,搜索引擎是怎么工作的?
本文介绍了搜索引擎的核心架构与工作原理,重点解析了爬虫、索引和检索三大系统。通过分词、纠错、推荐和位置索引等技术,搜索引擎能精准理解用户意图并高效召回结果,是文本检索领域的关键技术参考。
34 0
|
3天前
|
存储 Java 开发工具
4.1 服务端(DevBox)-项目创建
通过Sealos在DevBox中创建SpringBoot项目zxyf-management,配置Java环境与4G内存,使用Cursor智能开发工具一键启动云端Maven工程,快速完成项目构建与部署,无需手动输入命令,实现高效开发与访问。
17 0
|
3天前
|
机器学习/深度学习 人工智能 搜索推荐
结束语
从数组链表到搜索引擎、推荐系统,信息技术不断演进。信息爆炸时代,唯有构建思维的“检索引擎”,筛选、提炼有价值的知识,才能不被洪流淹没。学会迭代认知,打好基础,步步为营,方能跟上时代,迈向更高台阶。(238字)
25 0
|
3天前
|
机器学习/深度学习 搜索推荐 算法
20 | 推荐引擎:没有搜索词,「头条」怎么找到你感兴趣的文章?
本文深入解析了资讯类App推荐引擎的检索技术。通过“下拉刷新”背后的个性化召回机制,介绍了推荐系统如何在无搜索词情况下,基于用户行为数据构建用户与文章画像,并运用基于内容和协同过滤(用户/物品)的召回算法实现精准推荐,最后通过多路混合与分层排序优化性能。
29 0

热门文章

最新文章