当前位置: 首页 > ai >正文

操作指南*


任务1: 环境搭建

1.1 创建Spring Boot项目

操作步骤:

  1. 使用IDEA创建项目

    • 打开IDEA → FileNewProject
    • 选择 Spring Initializr → 设置项目信息(Group、Artifact、Java版本)
    • 选择依赖Spring WebMySQL DriverMyBatis Plus
    • 点击 Finish 生成项目
  2. 验证项目结构

    • 检查 pom.xml 中是否包含以下依赖:
    <dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>com.mysql</groupId><artifactId>mysql-connector-j</artifactId><scope>runtime</scope></dependency><dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.5.3</version></dependency>
    </dependencies>
    

1.2 配置 application.yml

操作步骤:

  1. src/main/resources 下创建 application.yml 文件
  2. 输入以下内容(注意替换数据库名和密码):
    server:port: 8080
    spring:datasource:url: jdbc:mysql://localhost:3306/student_db?useSSL=false&serverTimezone=UTCusername: rootpassword: 123456driver-class-name: com.mysql.cj.jdbc.Driver
    mybatis-plus:configuration:log-impl: org.apache.ibatis.logging.stdout.StdOutImplglobal-config:db-config:id-type: auto
    

任务2: 数据库映射

2.1 创建学生表

操作步骤:

  1. 打开MySQL客户端(如Navicat或命令行)
  2. 执行以下SQL(注意修正原题中的SQL错误):
    CREATE TABLE student (id BIGINT PRIMARY KEY AUTO_INCREMENT,name VARCHAR(50) NOT NULL,gender VARCHAR(10),age INT,major VARCHAR(50)
    );
    
  3. 插入测试数据(示例):
    INSERT INTO student (name, gender, age, major) 
    VALUES ('张三', '男', 20, '计算机科学'),('李四', '女', 22, '软件工程');
    

2.2 编写 Student 实体类

操作步骤:

  1. src/main/java/com/example/demo/entity 下创建 Student.java
  2. 输入以下代码:
    import com.baomidou.mybatisplus.annotation.TableId;
    import com.baomidou.mybatisplus.annotation.TableName;
    import lombok.Data;@Data
    @TableName("student")
    public class Student {@TableIdprivate Long id;private String name;private String gender;private Integer age;private String major;
    }
    

任务3: 基础功能实现

3.1 创建Mapper接口

操作步骤:

  1. src/main/java/com/example/demo/mapper 下创建 StudentMapper.java
  2. 输入以下代码:
    import com.baomidou.mybatisplus.core.mapper.BaseMapper;
    import org.apache.ibatis.annotations.Mapper;@Mapper
    public interface StudentMapper extends BaseMapper<Student> {
    }
    

3.2 实现Service层

操作步骤:

  1. src/main/java/com/example/demo/service 下创建 StudentService.java
  2. 输入以下代码:
    import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
    import com.example.demo.mapper.StudentMapper;
    import org.springframework.stereotype.Service;@Service
    public class StudentService extends ServiceImpl<StudentMapper, Student> {
    }
    

3.3 完成Controller方法

操作步骤:

  1. src/main/java/com/example/demo/controller 下创建 StudentController.java
  2. 输入以下代码:
    import com.example.demo.entity.Student;
    import com.example.demo.service.StudentService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.*;@RestController
    @RequestMapping("/students")
    public class StudentController {@Autowiredprivate StudentService studentService;@PostMappingpublic boolean addStudent(@RequestBody Student student) {return studentService.save(student);}@DeleteMapping("/{id}")public boolean deleteStudent(@PathVariable Long id) {return studentService.removeById(id);}@GetMapping("/{id}")public Student getStudent(@PathVariable Long id) {return studentService.getById(id);}
    }
    

任务4: 功能增强

4.1 分页查询

操作步骤:

  1. src/main/java/com/example/demo/config 下创建 MyBatisPlusConfig.java
  2. 输入以下代码(配置分页插件):
    import com.baomidou.mybatisplus.annotation.DbType;
    import com.baomidou.mybatisplus.extension.plugins.MybatisPlusInterceptor;
    import com.baomidou.mybatisplus.extension.plugins.inner.PaginationInnerInterceptor;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;@Configuration
    public class MyBatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
    }
    
  3. StudentController 中添加分页方法:
    @GetMapping("/page")
    public Page<Student> getStudentsByPage(@RequestParam(defaultValue = "1") Integer current,@RequestParam(defaultValue = "10") Integer size) {Page<Student> page = new Page<>(current, size);return studentService.page(page);
    }
    

4.2 按专业查询

操作步骤:

  1. StudentController 中添加方法:
    @GetMapping("/major/{major}")
    public List<Student> getByMajor(@PathVariable String major) {QueryWrapper<Student> queryWrapper = new QueryWrapper<>();queryWrapper.eq("major", major);return studentService.list(queryWrapper);
    }
    

任务5: 数据校验(选做)

5.1 添加依赖

操作步骤:

  1. 修改 pom.xml 添加依赖:
    <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
    </dependency>
    

5.2 修改实体类

操作步骤:

  1. 修改 Student.java
    import javax.validation.constraints.*;@Data
    @TableName("student")
    public class Student {@TableIdprivate Long id;@NotBlank(message = "姓名不能为空")private String name;private String gender;@Min(value = 18, message = "年龄不能小于18岁")@Max(value = 30, message = "年龄不能大于30岁")private Integer age;private String major;
    }
    

5.3 修改Controller

操作步骤:

  1. StudentController 中修改 addStudent 方法:
    @PostMapping
    public Result addStudent(@Valid @RequestBody Student student, BindingResult result) {if (result.hasErrors()) {return Result.error(result.getFieldError().getDefaultMessage());}return Result.ok(studentService.save(student));
    }
    
  2. 创建统一返回类 Result.java
    @Data
    public class Result {private Integer code;private String msg;private Object data;public static Result ok(Object data) {Result result = new Result();result.setCode(200);result.setData(data);return result;}public static Result error(String msg) {Result result = new Result();result.setCode(400);result.setMsg(msg);return result;}
    }
    

验证接口

操作步骤:

  1. 启动项目:运行 DemoApplication.java
  2. 使用Postman测试
    • 新增学生POST http://localhost:8080/students
      {"name": "王五","gender": "男","age": 25,"major": "人工智能"
      }
      
    • 分页查询GET http://localhost:8080/students/page?current=1&size=10
    • 按专业查询GET http://localhost:8080/students/major/计算机科学
    • 校验测试:发送年龄为17或姓名为空的请求,观察错误提示

http://www.xdnf.cn/news/4471.html

相关文章:

  • 数通HCIE的通过率怎么样?
  • no main manifest attribute, in xxx.jar
  • 软件系统的可观测性 Observability
  • 【AI】模型与权重的基本概念
  • 《Python星球日记》 第45天:KNN 与 SVM 分类器
  • 从电话到V信语音:一款App实现全场景社交脱身
  • 28.成功解决i2c_transfer返回-6的问题并linux驱动mpu6050(适合一切linux学习者)
  • OpenCV 中用于背景分割(背景建模)的一个类cv::bgsegm::BackgroundSubtractorCNT
  • 【HarmonyOS 5】鸿蒙中常见的标题栏布局方案
  • Oracle 开窗函数
  • 高组装导轨的特点
  • Java中字符转数字的原理解析 - 为什么char x - ‘0‘能得到对应数字
  • 《Python星球日记》 第43天:机器学习概述与Scikit-learn入门
  • 旧版谷歌浏览器Chrome v116.0.5845.141下载
  • 38.机壳间接缝的处理
  • 27、移除元素
  • 加速页面加载的全流程优化策略
  • 日常知识点之随手问题整理(虚函数 虚函数表 继承的使用场景)
  • 【Linux 系统调试】Linux 调试工具strip使用方法
  • Kubernetes生产级资源管理实战:从QoS策略到OOM防御体系
  • C 语言网络编程问题:E1696 无法打开 源 文件 “sys/socket.h“
  • ubuntu安装Go SDK
  • linux 怎么把trex-core-2.65用 crosstool-ng-1.27.0/编译
  • chili调试笔记13 工程图模块 mesh渲染 mesh共享边显示实现
  • FlyEnv:优雅直观的跨平台开发环境管理工具
  • VUE+ElementUI 使用el-input类型type=“number” 时,取消右边的上下箭头
  • Nginx 搭建支持多版本和前端路由的静态网站
  • 高斯牛顿法 梯度下降法 LM算法的区别
  • 【ARM AMBA AHB 入门 3 -- AHB 总线介绍】
  • Postman中https和http的区别是什么?