操作指南*

发布于:2025-05-08 ⋅ 阅读:(27) ⋅ 点赞:(0)

任务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=UTC
        username: root
        password: 123456
        driver-class-name: com.mysql.cj.jdbc.Driver
    mybatis-plus:
      configuration:
        log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
      global-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 {
        @TableId
        private 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 {
    
        @Autowired
        private StudentService studentService;
    
        @PostMapping
        public 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 {
        @Bean
        public 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 {
        @TableId
        private 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或姓名为空的请求,观察错误提示


网站公告

今日签到

点亮在社区的每一天
去签到