基于Spring Boot的学生成绩管理系统
以下是一个简化的Spring Boot学生成绩管理系统的核心代码示例。为了简洁,我们假设已经有了必要的实体类、数据库访问层、服务层和控制器层的代码。
// Student.java (实体类)
@Entity
public class Student {
@Id
private Long id;
private String name;
// 省略其他属性、getter和setter
}
// Score.java (实体类)
@Entity
public class Score {
@Id
private Long id;
private int score;
// 关联属性,指向学生
@ManyToOne
private Student student;
// 省略其他属性、getter和setter
}
// StudentService.java (服务层)
@Service
public class StudentService {
@Autowired
private StudentRepository studentRepository;
public List<Student> findAllStudents() {
return studentRepository.findAll();
}
// 省略其他方法
}
// ScoreService.java (服务层)
@Service
public class ScoreService {
@Autowired
private ScoreRepository scoreRepository;
public List<Score> findAllScoresByStudentId(Long studentId) {
return scoreRepository.findAllByStudentId(studentId);
}
// 省略其他方法
}
// StudentController.java (控制器)
@RestController
@RequestMapping("/api/students")
public class StudentController {
@Autowired
private StudentService studentService;
@GetMapping
public ResponseEntity<List<Student>> getAllStudents() {
List<Student> students = studentService.findAllStudents();
if (students.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
return new ResponseEntity<>(students, HttpStatus.OK);
}
// 省略其他控制器方法
}
// ScoreController.java (控制器)
@RestController
@RequestMapping("/api/scores")
public class ScoreController {
@Autowired
private ScoreService scoreService;
@GetMapping("/{studentId}")
public ResponseEntity<List<Score>> getAllScoresByStudentId(@PathVariable Long studentId) {
List<Score> scores = scoreService.findAllScoresByStudentId(studentId);
if (scores.isEmpty()) {
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
}
return new ResponseEntity<>(scores, HttpStatus.OK);
}
// 省略其他控制器方法
}
这个示例展示了如何使用Spring Boot创建REST API来管理学生成绩。实体类使用了JPA注解来映射数据库表。服务层处理业务逻辑,控制器层处理HTTP请求。这个简化的系统没有包含数据库访问层的代码,通常会用Spring Data JPA的仓库接口来简化数据访问层的实现。
评论已关闭