当前位置:实例文章 » JAVA Web实例» [文章]springboot学生管理系统【纯干货分享,免费领源码】

springboot学生管理系统【纯干货分享,免费领源码】

发布人:shili8 发布时间:2025-02-24 21:36 阅读次数:0

**SpringBoot学生管理系统**

**前言**

本文将介绍如何使用Spring Boot构建一个基本的学生管理系统。该系统将包括以下功能:

* 学生信息管理(添加、删除、修改)
* 学生信息查询* 学生分页显示**项目结构**

首先,我们需要创建一个新的Spring Boot项目。我们选择Maven作为包管理器,Java8作为运行环境。

xml<parent>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-parent</artifactId>
 <version>2.3.4.RELEASE</version>
 <relativePath/> <!-- lookup parent from repository -->
</parent>

<groupId>com.example</groupId>
<artifactId>student-management-system</artifactId>
<version>0.0.1-SNAPSHOT</version>
<name>student-management-system</name>
<description>Demo project for Spring Boot</description>

<dependencies>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-web</artifactId>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-data-jpa</artifactId>
 </dependency>
 <dependency>
 <groupId>com.h2database</groupId>
 <artifactId>h2</artifactId>
 <scope>runtime</scope>
 </dependency>
 <dependency>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-starter-test</artifactId>
 <scope>test</scope>
 </dependency>
</dependencies>

<build>
 <plugins>
 <plugin>
 <groupId>org.springframework.boot</groupId>
 <artifactId>spring-boot-maven-plugin</artifactId>
 </plugin>
 </plugins>
</build>


**实体类**

我们需要定义一个Student实体类来表示学生信息。

java@Entity@Table(name = "students")
public class Student {

 @Id @GeneratedValue(strategy = GenerationType.IDENTITY)
 private Long id;

 @Column(nullable = false, length =50)
 private String name;

 @Column(nullable = false, length =100)
 private String email;

 // getters and setters}


**DAO层**

我们需要定义一个StudentRepository接口来进行学生信息的CRUD操作。

javapublic interface StudentRepository extends JpaRepository {

}


**服务层**

我们需要定义一个StudentService类来封装业务逻辑。

java@Servicepublic class StudentService {

 @Autowired private StudentRepository studentRepository;

 public List getAllStudents() {
 return studentRepository.findAll();
 }

 public Student getStudentById(Long id) {
 return studentRepository.findById(id).orElse(null);
 }

 public void addStudent(Student student) {
 studentRepository.save(student);
 }

 public void deleteStudent(Long id) {
 studentRepository.deleteById(id);
 }

}


**控制器**

我们需要定义一个StudentController类来处理HTTP请求。

java@RestController@RequestMapping("/api/students")
public class StudentController {

 @Autowired private StudentService studentService;

 @GetMapping public List getAllStudents() {
 return studentService.getAllStudents();
 }

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

 @PostMapping public void addStudent(@RequestBody Student student) {
 studentService.addStudent(student);
 }

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

}


**分页显示**

我们需要定义一个Pageable接口来进行分页显示。

javapublic interface Pageable {

 int getPageNumber();

 int getPageSize();

 Sort getSort();

}

public class PageRequest implements Pageable {

 private int pageNumber;

 private int pageSize;

 private Sort sort;

 public PageRequest(int pageNumber, int pageSize) {
 this.pageNumber = pageNumber;
 this.pageSize = pageSize;
 }

 public int getPageNumber() {
 return pageNumber;
 }

 public int getPageSize() {
 return pageSize;
 }

}


**分页显示控制器**

我们需要定义一个StudentController类来处理分页显示请求。

java@RestController@RequestMapping("/api/students")
public class StudentController {

 @Autowired private StudentService studentService;

 @GetMapping public Page getAllStudents(PageRequest pageable) {
 return studentService.getAllStudents(pageable);
 }

}


**服务层**

我们需要定义一个StudentService类来封装业务逻辑。

java@Servicepublic class StudentService {

 @Autowired private StudentRepository studentRepository;

 public Page getAllStudents(PageRequest pageable) {
 return studentRepository.findAll(pageable);
 }

}


**DAO层**

我们需要定义一个StudentRepository接口来进行学生信息的CRUD操作。

javapublic interface StudentRepository extends JpaRepository, JpaSpecificationExecutor {

}

public class StudentSpecification implements Specification {

 private String name;

 public StudentSpecification(String name) {
 this.name = name;
 }

 @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) {
 return cb.like(root.get("name"), "%" + name + "%");
 }

}


**分页显示**

我们需要定义一个Pageable接口来进行分页显示。

javapublic interface Pageable {

 int getPageNumber();

 int getPageSize();

 Sort getSort();

}

public class PageRequest implements Pageable {

 private int pageNumber;

 private int pageSize;

 private Sort sort;

 public PageRequest(int pageNumber, int pageSize) {
 this.pageNumber = pageNumber;
 this.pageSize = pageSize;
 }

 public int getPageNumber() {
 return pageNumber;
 }

 public int getPageSize() {
 return pageSize;
 }

}


**分页显示控制器**

我们需要定义一个StudentController类来处理分页显示请求。

java@RestController@RequestMapping("/api/students")
public class StudentController {

 @Autowired private StudentService studentService;

 @GetMapping public Page getAllStudents(PageRequest pageable) {
 return studentService.getAllStudents(pageable);
 }

}


**服务层**

我们需要定义一个StudentService类来封装业务逻辑。

java@Servicepublic class StudentService {

 @Autowired private StudentRepository studentRepository;

 public Page getAllStudents(PageRequest pageable) {
 return studentRepository.findAll(pageable);
 }

}


**DAO层**

我们需要定义一个StudentRepository接口来进行学生信息的CRUD操作。

javapublic interface StudentRepository extends JpaRepository, JpaSpecificationExecutor {

}

public class StudentSpecification implements Specification {

 private String name;

 public StudentSpecification(String name) {
 this.name = name;
 }

 @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) {
 return cb.like(root.get("name"), "%" + name + "%");
 }

}


**分页显示**

我们需要定义一个Pageable接口来进行分页显示。

javapublic interface Pageable {

 int getPageNumber();

 int getPageSize();

 Sort getSort();

}

public class PageRequest implements Pageable {

 private int pageNumber;

 private int pageSize;

 private Sort sort;

 public PageRequest(int pageNumber, int pageSize) {
 this.pageNumber = pageNumber;
 this.pageSize = pageSize;
 }

 public int getPageNumber() {
 return pageNumber;
 }

 public int getPageSize() {
 return pageSize;
 }

}


**分页显示控制器**

我们需要定义一个StudentController类来处理分页显示请求。

java@RestController@RequestMapping("/api/students")
public class StudentController {

 @Autowired private StudentService studentService;

 @GetMapping public Page getAllStudents(PageRequest pageable) {
 return studentService.getAllStudents(pageable);
 }

}


**服务层**

我们需要定义一个StudentService类来封装业务逻辑。

java@Servicepublic class StudentService {

 @Autowired private StudentRepository studentRepository;

 public Page getAllStudents(PageRequest pageable) {
 return studentRepository.findAll(pageable);
 }

}


**DAO层**

我们需要定义一个StudentRepository接口来进行学生信息的CRUD操作。

javapublic interface StudentRepository extends JpaRepository, JpaSpecificationExecutor {

}

public class StudentSpecification implements Specification {

 private String name;

 public StudentSpecification(String name) {
 this.name = name;
 }

 @Override public Predicate toPredicate(Root root, CriteriaQuery query, CriteriaBuilder cb) {
 return cb.like(root.get("name"), "%" + name + "%");
 }

}


**分页显示**

我们需要定义一个Pageable接口来进行分页显示。

javapublic interface Pageable {

 int getPageNumber();

 int getPageSize();

 Sort getSort();

}

public class PageRequest implements Pageable {

 private int pageNumber;

 private int

其他信息

其他资源

Top