diff --git a/SimpleStudentManagementSystem/src/main/java/edu/gjq/controller/CourseController.java b/SimpleStudentManagementSystem/src/main/java/edu/gjq/controller/CourseController.java index 834cee2..8d24ab0 100644 --- a/SimpleStudentManagementSystem/src/main/java/edu/gjq/controller/CourseController.java +++ b/SimpleStudentManagementSystem/src/main/java/edu/gjq/controller/CourseController.java @@ -1,6 +1,8 @@ package edu.gjq.controller; import edu.gjq.pojo.Course; +import edu.gjq.pojo.Score; +import edu.gjq.pojo.StudentScore; import edu.gjq.service.CourseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; @@ -64,10 +66,8 @@ public class CourseController { // 查询课程学生选课情况 @GetMapping("/enrollments/{courseId}") public String getEnrollments(@PathVariable String courseId, Model model) { - // 假设有一个方法 getEnrollmentsByCourseId 来获取选课情况 - // 这里需要根据实际的业务逻辑来实现 - List enrollments = courseService.getEnrollmentsByCourseId(courseId); - model.addAttribute("enrollments", enrollments); - return "enrollments"; + List scores = courseService.getStudentScoresByCourseId(courseId); + model.addAttribute("scores", scores); + return "scores"; } } \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/java/edu/gjq/mapper/CourseMapper.java b/SimpleStudentManagementSystem/src/main/java/edu/gjq/mapper/CourseMapper.java index 499ad1b..e034c1d 100644 --- a/SimpleStudentManagementSystem/src/main/java/edu/gjq/mapper/CourseMapper.java +++ b/SimpleStudentManagementSystem/src/main/java/edu/gjq/mapper/CourseMapper.java @@ -1,7 +1,8 @@ package edu.gjq.mapper; import edu.gjq.pojo.Course; -import edu.gjq.pojo.Enrollment; +import edu.gjq.pojo.Score; +import edu.gjq.pojo.StudentScore; import java.util.List; @@ -21,7 +22,7 @@ public interface CourseMapper { // 删除课程 void deleteById(String id); - // 查询课程学生选课情况 - List getEnrollmentsByCourseId(String courseId); + // 查询某个课程的学生选课情况 + List getStudentScoresByCourseId(String courseId); } \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/java/edu/gjq/mapper/ScoreMapper.java b/SimpleStudentManagementSystem/src/main/java/edu/gjq/mapper/ScoreMapper.java index 2e274bb..42a9a62 100644 --- a/SimpleStudentManagementSystem/src/main/java/edu/gjq/mapper/ScoreMapper.java +++ b/SimpleStudentManagementSystem/src/main/java/edu/gjq/mapper/ScoreMapper.java @@ -21,4 +21,5 @@ public interface ScoreMapper { // 根据no查询成绩 List getAll(); + } diff --git a/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/Enrollment.java b/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/Enrollment.java deleted file mode 100644 index 91c5376..0000000 --- a/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/Enrollment.java +++ /dev/null @@ -1,11 +0,0 @@ -package edu.gjq.pojo; - -import lombok.Data; - -@Data -public class Enrollment { - private String studentId; // 学生ID - private String studentName; // 学生姓名 - private Integer courseId; // 课程ID - private String courseName; // 课程名称 -} \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/Score.java b/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/Score.java index 13e786c..486bd4d 100644 --- a/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/Score.java +++ b/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/Score.java @@ -15,4 +15,14 @@ public class Score extends BaseEntity{ // 学生和课程是一的一方 private Student student; private Course course; + + public void setStudentId(String studentId) { + this.studentId = studentId; + } + + public void setCourseId(String courseId) { + this.courseId = courseId; + } + + } diff --git a/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/StudentScore.java b/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/StudentScore.java index ccb6ec0..29aa123 100644 --- a/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/StudentScore.java +++ b/SimpleStudentManagementSystem/src/main/java/edu/gjq/pojo/StudentScore.java @@ -8,4 +8,13 @@ import java.util.List; public class StudentScore { private Student student; private List scores; + + + public Student getStudent() { + return student; + } + + public List getScore() { + return scores; + } } diff --git a/SimpleStudentManagementSystem/src/main/java/edu/gjq/service/CourseService.java b/SimpleStudentManagementSystem/src/main/java/edu/gjq/service/CourseService.java index 3b51266..4a35af3 100644 --- a/SimpleStudentManagementSystem/src/main/java/edu/gjq/service/CourseService.java +++ b/SimpleStudentManagementSystem/src/main/java/edu/gjq/service/CourseService.java @@ -1,7 +1,7 @@ package edu.gjq.service; import edu.gjq.pojo.Course; -import edu.gjq.pojo.Enrollment; +import edu.gjq.pojo.StudentScore; import java.util.List; @@ -11,5 +11,5 @@ public interface CourseService { Course getCourseById(String id); void updateCourse(Course course); void deleteCourse(String id); - List getEnrollmentsByCourseId(String courseId); + List getStudentScoresByCourseId(String courseId); } \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/java/edu/gjq/service/impl/CourseServiceImpl.java b/SimpleStudentManagementSystem/src/main/java/edu/gjq/service/impl/CourseServiceImpl.java index 4df11d9..f3939db 100644 --- a/SimpleStudentManagementSystem/src/main/java/edu/gjq/service/impl/CourseServiceImpl.java +++ b/SimpleStudentManagementSystem/src/main/java/edu/gjq/service/impl/CourseServiceImpl.java @@ -2,7 +2,7 @@ package edu.gjq.service.impl; import edu.gjq.mapper.CourseMapper; import edu.gjq.pojo.Course; -import edu.gjq.pojo.Enrollment; +import edu.gjq.pojo.StudentScore; import edu.gjq.service.CourseService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; @@ -43,7 +43,7 @@ public class CourseServiceImpl implements CourseService { } @Override - public List getEnrollmentsByCourseId(String courseId) { - return (List) courseMapper.getEnrollmentsByCourseId(courseId); + public List getStudentScoresByCourseId(String courseId) { + return courseMapper.getStudentScoresByCourseId(courseId); } } \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/mapper/CourseMapper.xml b/SimpleStudentManagementSystem/src/main/resources/mapper/CourseMapper.xml index 6a3db18..bcd3756 100644 --- a/SimpleStudentManagementSystem/src/main/resources/mapper/CourseMapper.xml +++ b/SimpleStudentManagementSystem/src/main/resources/mapper/CourseMapper.xml @@ -23,6 +23,7 @@ + insert into course (id, name) values (#{id}, #{name}) @@ -42,21 +43,37 @@ delete from course where id = #{id} - - + SELECT + s.id as "student.id", + s.name as "student.name", + s.gender as "student.gender", + s.birthday as "student.birthday", + sc.id as "scores[0].id", + sc.student_id as "scores[0].studentId", + sc.course_id as "scores[0].courseId", + sc.score as "scores[0].score" + FROM + score sc + JOIN student s ON sc.student_id = s.id + WHERE + sc.course_id = #{courseId} - - - - - - + + + + + + + + + + + + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/mapper/ScoreMapper.xml b/SimpleStudentManagementSystem/src/main/resources/mapper/ScoreMapper.xml index 7446858..135026a 100644 --- a/SimpleStudentManagementSystem/src/main/resources/mapper/ScoreMapper.xml +++ b/SimpleStudentManagementSystem/src/main/resources/mapper/ScoreMapper.xml @@ -11,12 +11,12 @@ - update grade + update score - grade = #{grade}, - update_time = #{updateTime} + score = #{score}, + update_time = #{updateTime} - where no = #{no} + where student_id = #{studentId} and course_id = #{courseId} @@ -37,6 +37,7 @@ FROM score, student as s, course as c WHERE s.id = score.student_id and c.id = score.course_id + @@ -48,31 +49,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/test/java/edu/gjq/ApplicationTests.java b/SimpleStudentManagementSystem/src/test/java/edu/gjq/ApplicationTests.java index 1b01bdb..eb11be5 100644 --- a/SimpleStudentManagementSystem/src/test/java/edu/gjq/ApplicationTests.java +++ b/SimpleStudentManagementSystem/src/test/java/edu/gjq/ApplicationTests.java @@ -51,39 +51,28 @@ class ApplicationTests { public void testInsertAccount(){ // 新增账号 Account account = new Account(); - account.setAccount("12143"); + account.setAccount("12149"); account.setPassword("123456"); account.setCreateBy(1); LocalDateTime now = LocalDateTime.now(); account.setCreateTime(now); accountMapper.insertAccount(account); } -// @Test -// public void testInsertStudent() { -// Student student = new Student(); -// student.setId("12149"); -// student.setName("小星星"); -// student.setGender(0); -// student.setBirthday(LocalDate.of(2014, 6, 4)); -// student.setCreateBy(1); -// LocalDateTime now = LocalDateTime.now(); -// student.setCreateTime(now); -// studentMapper.insertStudent(student); -// -// } @Test - public void testInsertScore(){ - Score score = new Score(); - score.setStudentId("12142"); - score.setCourseId("106"); - score.setScore(60); - score.setCreateBy(1); + public void testInsertStudent() { + Student student = new Student(); + student.setId("12149"); + student.setName("小星星"); + student.setGender(0); + student.setBirthday(LocalDate.of(2014, 6, 4)); + student.setCreateBy(1); LocalDateTime now = LocalDateTime.now(); - score.setCreateTime(now); - scoreMapper.insert(score); - System.out.println(score.getId()); + student.setCreateTime(now); + studentMapper.insertStudent(student); + } - + +// 更新学生姓名 @Test public void testUpdateStudent(){ Student student = new Student(); @@ -145,31 +134,48 @@ class ApplicationTests { System.out.println("课程:" + score.getCourse().getName() + ",成绩:" + score.getScore()); } } - /*@Test + // 新增课程成绩 + @Test + public void testInsertScore(){ + Score score = new Score(); + score.setStudentId("12142"); + score.setCourseId("106"); + score.setScore(60); + score.setCreateBy(1); + LocalDateTime now = LocalDateTime.now(); + score.setCreateTime(now); + scoreMapper.insert(score); + System.out.println(score.getId()); + } + @Test public void testGradeUpdate(){ Score score = new Score(); - score.setStudentID("12142"); - score.setCourseID("101"); - score.setGrade(90); + score.setStudentId("12142"); + score.setCourseId("106"); + score.setScore(100); score.setUpdateTime(LocalDateTime.now()); - gradeMapper.update(score); + scoreMapper.update(score); System.out.println(score); } - - - @Test - public void testGradeDelete(){ - gradeMapper.deleteByNo(24); - } - + @Test - public void testGetByNo(){ - Score score = gradeMapper.getByNo(1); - System.out.println(score); + public void testGradeDelete(){ + scoreMapper.deleteById(16); } - - */ + + + + + /* + * 课程管理 +查询所有课程名 +增加某个课程 +更新某个课程 +删除某个课程 + * + * + * */ @Test public void testGetAllCourses() { List courses = courseMapper.getAll(); @@ -196,5 +202,22 @@ class ApplicationTests { public void testDeleteCourse() { courseMapper.deleteById("107"); } - + +//查询这个课程学生选课情况 + @Test + public void testGetStudentScoresByCourseId() { + List studentScores = courseMapper.getStudentScoresByCourseId("101"); + studentScores.forEach(studentScore -> { + Student student = studentScore.getStudent(); + List scores = studentScore.getScore(); + + System.out.println("学生ID: " + student.getId()); + System.out.println("学生姓名: " + student.getName()); + + scores.forEach(score -> { + System.out.println("课程ID: " + score.getCourseId()); + System.out.println("成绩: " + score.getScore()); + }); + }); + } }