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

操作指南*


任务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或姓名为空的请求,观察错误提示

相关文章:

  • allegro出gerber时,单击Artwork并没有弹窗的问题
  • Linux 安全加固
  • htop筛选进程时,出现重复进程
  • 浅谈C++的new和delete
  • 端口隔离实验
  • Docker容器网络架构深度解析与技术实践指南——基于Linux内核特性的企业级容器网络实现
  • 如何进行室内VR全景拍摄?
  • 控制mac地址表端口安全
  • 004 Linux基本指令
  • 使用 Selenium 截图功能,截不到原生 JavaScript 弹窗
  • Red Hat linux环境openssh升级到openssh-10.0p1
  • [特殊字符] Milvus + LLM大模型:打造智能电影知识库系统
  • 首屏加载时间优化策略
  • WSL 的 Ubuntu 子系统中启用图形化界面
  • Ollama【部署 05】Linux环境安装、升级、启动脚本(connection reset by peer异常)
  • ISCC 2025练武题 WP部分
  • Java中创建对象的方式
  • kingbase中文乱码
  • C++ 有哪些标准版本
  • MCP连接Agent:AI时代的TCP/IP
  • 洗冤录|县令遇豪强:黄榦处理的一起地产纠纷案
  • 国家主席习近平同普京总统举行小范围会谈
  • 罗氏制药全新生物制药生产基地投资项目在沪启动:预计投资20.4亿元,2031年投产
  • AI智能体,是不是可以慢一点? | ToB产业观察
  • “半世纪来对无争议边界最深入袭击”:印巴冲突何以至此又如何收场?
  • 牛市早报|金融政策支持稳市场稳预期发布会将举行,商务部:中方决定同意与美方进行接触