springboot实现学生管理系统

实现学生管理系统是一个常见的Web开发入门项目。下面我将基于Spring Boot框架,讲解如何实现一个简单的学生管理系统。

1. 环境准备

在开始之前,需要准备好以下软件或工具:

  • JDK 1.8 或以上版本
  • IntelliJ IDEA 或其他Java开发工具
  • MySQL 数据库
  • Maven 依赖管理工具

2. Spring Boot 项目初始化

  1. 在 IntelliJ IDEA 中选择 File->New->Project,选择Spring Initializr创建一个新的Spring Boot项目。
  2. 输入项目信息后,选择生成项目的依赖,可以选择 Web、JPA、MySQL等依赖。
  3. 等待 IDEA 生成项目骨架,初始化完成。

3. 数据库设计

在MySQL中创建一个名为student_management的数据库,包含以下两个表:

学生表

字段名 类型 描述
id bigint 学生ID
name varchar(64) 学生姓名
gender varchar(2) 性别
age int 年龄

成绩表

字段名 类型 描述
id bigint 学生ID
course varchar(64) 课程
score int 成绩

4. 实现学生管理接口

  1. 创建一个Student实体类,包含学生基本信息的字段和Getter/Setter方法
@Entity
@Data
public class Student {
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;
    private String name;
    private String gender;
    private Integer age;
}
  1. 创建一个Student的JpaRepository,提供基本的CRUD方法
public interface StudentRepository extends JpaRepository<Student, Long> {
}
  1. 创建一个StudentController,实现学生信息的增删查改功能,代码如下:
@RestController
@RequestMapping("/student")
public class StudentController {
    @Autowired
    private StudentRepository studentRepository;

    @PostMapping("/")
    public Student createStudent(@RequestBody Student student){
        return studentRepository.save(student);
    }

    @GetMapping("/{id}")
    public Student getStudentById(@PathVariable Long id){
        return studentRepository.findById(id).get();
    }

    @PutMapping("/{id}")
    public Student updateStudent(@PathVariable Long id, @RequestBody Student student){
        student.setId(id);
        return studentRepository.save(student);
    }

    @DeleteMapping("/{id}")
    public void deleteStudent(@PathVariable Long id){
        studentRepository.deleteById(id);
    }

    @GetMapping("/")
    public List<Student> getAllStudents(){
        return studentRepository.findAll();
    }
}
  1. 在resources/application.properties中配置与MySQL的连接信息
spring.datasource.url=jdbc:mysql://localhost:3306/student_management?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=123456
spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.properties.hibernate.format_sql=true
  1. 启动应用,访问http://localhost:8080/student即可测试以上学生信息的增删查改接口。

5. 实现课程成绩接口(示例二)

  1. 创建一个Score实体类,包含成绩信息的字段和Getter/Setter方法
@Entity
@Data
public class Score {
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;
    private String course;
    private Integer score;
    @ManyToOne
    @JoinColumn(name = "student_id")
    private Student student;
}
  1. 修改Student实体类,使Score与Student之间存在一对多的关系
@Entity
@Data
public class Student {
    @Id
    @GeneratedValue(strategy= GenerationType.AUTO)
    private Long id;
    private String name;
    private String gender;
    private Integer age;
    @OneToMany(mappedBy = "student", cascade=CascadeType.ALL, fetch=FetchType.LAZY)
    private List<Score> scores;
}
  1. 创建一个Score的JpaRepository
public interface ScoreRepository extends JpaRepository<Score, Long> {
    List<Score> findByStudentId(Long studentId);
}
  1. 创建一个ScoreController,实现课程成绩的增删查改和查询某个学生的所有课程成绩等功能,代码如下:
@RestController
@RequestMapping("/score")
public class ScoreController {
    @Autowired
    private ScoreRepository scoreRepository;

    @PostMapping("/")
    public Score createScore(@RequestBody Score score){
        return scoreRepository.save(score);
    }

    @GetMapping("/{id}")
    public Score getScoreById(@PathVariable Long id){
        return scoreRepository.findById(id).get();
    }

    @GetMapping("/")
    public List<Score> getAllScores(){
        return scoreRepository.findAll();
    }

    @GetMapping("/student/{id}")
    public List<Score> getScoreByStudentId(@PathVariable Long id){
        return scoreRepository.findByStudentId(id);
    }

    @PutMapping("/{id}")
    public Score updateScore(@RequestBody Score score){
        return scoreRepository.save(score);
    }

    @DeleteMapping("/{id}")
    public void deleteScore(@PathVariable Long id){
        scoreRepository.deleteById(id);
    }
}
  1. 启动应用,访问http://localhost:8080/score可测试以上课程成绩的增删查改和查询某个学生的所有课程成绩接口。

至此,一个简单的学生管理系统的基本功能已经实现。通过此项目,我们不仅学会了Spring Boot项目的初始化、数据库设计,还学会了如何构建简单的REST API。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:springboot实现学生管理系统 - Python技术站

(0)
上一篇 2023年5月15日
下一篇 2023年5月15日

相关文章

  • Java进阶学习:jar打包详解

    Java进阶学习:jar打包详解 什么是jar包? Java Archive文件,简称jar包,是Java中一种用于打包、压缩Java类文件、图片、配置文件等资源的标准格式。它能够将多个相关的Java类和其它文件捆绑成一个独立的可执行程序,方便部署和传输。 jar包可以用于多种场合,比如: 将代码打包成jar文件,以便分发代码,并方便其他程序调用 建立插件体…

    Java 2023年5月19日
    00
  • java获取日期的方法

    当我们编写Java程序时,常常需要获取当前的日期和时间,以及进行时间的加减计算和格式化输出。下面是获取日期的方法的攻略。 获取当前日期 要获取当前日期,可以使用Java自带的日期类java.util.Date,这个类表示一个精确到毫秒的时间点,我们可以通过它获取当前日期并对其进行格式化。 import java.util.Date; import java.…

    Java 2023年5月20日
    00
  • spring boot项目实战之实现与数据库的连接

    Spring Boot项目实战之实现与数据库的连接 概述 Spring Boot是一个快速开发框架,让我们可以专注于业务代码的开发,而不需要关心底层架构的细节。在实际开发中,与数据库的连接是一个非常常见的需求。本文将详细介绍如何在Spring Boot项目中实现与数据库的连接。 步骤 添加Spring Boot依赖 在pom.xml文件中添加如下依赖: &l…

    Java 2023年6月2日
    00
  • java把字符串写入文件里的简单方法分享

    以下是详细讲解Java把字符串写入文件里的简单方法分享的完整攻略。 准备工作 为了实现将字符串写入文件,我们需要先准备文件路径和字符串内容,这里以一个示例字符串和文件路径为例: String content = "Java is a programming language."; String filePath = "D:/ja…

    Java 2023年5月19日
    00
  • JSP页面中文传递参数使用escape编码

    JSP页面中文传递参数使用escape编码的完整攻略如下: 1. 什么是escape编码? escape编码是一种在传递URL参数时,将不安全字符转义成%xx的形式的编码方式。其中,XX是不安全字符在ASCII码表中相应的16进制数字。 2. escape编码的使用场景 在JSP页面中,如果我们需要传递中文参数给后台处理,如果我们不对这些中文参数进行编码,那…

    Java 2023年6月15日
    00
  • Java利用递归算法实现查询斐波那契数

    下面我将详细讲解Java利用递归算法实现查询斐波那契数的完整攻略。 什么是斐波那契数 斐波那契数指的是一个数列,该数列从第3项开始每一项都等于前两项之和。这个数列如下所示:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, …,通常用F(n)表示该数列的第n项。 利用递归算法实现查询斐波那契数 递归是一种通过自身调用来实现循…

    Java 2023年5月19日
    00
  • MybatisPlus特殊查询的实现介绍

    MybatisPlus特殊查询的实现介绍 MybatisPlus是基于Mybatis的一个增强库,其中包括了很多常用操作的封装,极大地降低了开发者的编码难度和时间成本,同时也提高了代码的可读性和可维护性。 但是有些时候,简单的CRUD操作并不能满足我们的需求。MybatisPlus提供了很多特殊查询的实现方式,本文将简单介绍其中的几种。 前置条件 在具体实现…

    Java 2023年5月20日
    00
  • Java的MyBatis框架项目搭建与hellow world示例

    下面是关于Java的MyBatis框架项目搭建与hellow world示例的完整攻略: 1. MyBatis框架项目搭建 1.1 安装MyBatis 首先你需要安装MyBatis的Jar包以及相关依赖,你可以在Maven中央仓库中查找MyBatis的版本并下载对应版本的Jar包。 1.2 配置MyBatis 在项目中添加配置文件mybatis-config…

    Java 2023年5月20日
    00
合作推广
合作推广
分享本页
返回顶部