简单学生管理系统
This commit is contained in:
parent
2833d5e64c
commit
db9198a49e
|
@ -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<StudentScore> scores = courseService.getStudentScoresByCourseId(courseId);
|
||||
model.addAttribute("scores", scores);
|
||||
return "scores";
|
||||
}
|
||||
}
|
|
@ -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<Enrollment> getEnrollmentsByCourseId(String courseId);
|
||||
// 查询某个课程的学生选课情况
|
||||
List<StudentScore> getStudentScoresByCourseId(String courseId);
|
||||
|
||||
}
|
|
@ -21,4 +21,5 @@ public interface ScoreMapper {
|
|||
|
||||
// 根据no查询成绩
|
||||
List<Score> getAll();
|
||||
|
||||
}
|
||||
|
|
|
@ -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; // 课程名称
|
||||
}
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -8,4 +8,13 @@ import java.util.List;
|
|||
public class StudentScore {
|
||||
private Student student;
|
||||
private List<Score> scores;
|
||||
|
||||
|
||||
public Student getStudent() {
|
||||
return student;
|
||||
}
|
||||
|
||||
public List<Score> getScore() {
|
||||
return scores;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -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<Enrollment> getEnrollmentsByCourseId(String courseId);
|
||||
List<StudentScore> getStudentScoresByCourseId(String courseId);
|
||||
}
|
|
@ -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<Enrollment> getEnrollmentsByCourseId(String courseId) {
|
||||
return (List<Enrollment>) courseMapper.getEnrollmentsByCourseId(courseId);
|
||||
public List<StudentScore> getStudentScoresByCourseId(String courseId) {
|
||||
return courseMapper.getStudentScoresByCourseId(courseId);
|
||||
}
|
||||
}
|
|
@ -23,6 +23,7 @@
|
|||
</where>
|
||||
</select>
|
||||
|
||||
|
||||
<!-- 插入课程 -->
|
||||
<insert id="insertCourse" parameterType="Course">
|
||||
insert into course (id, name) values (#{id}, #{name})
|
||||
|
@ -42,21 +43,37 @@
|
|||
delete from course where id = #{id}
|
||||
</delete>
|
||||
|
||||
<!-- 查询课程学生选课情况 -->
|
||||
<select id="getEnrollmentsByCourseId" resultType="Enrollment">
|
||||
SELECT s.id as student_id, s.name as student_name, c.id as course_id, c.name as course_name
|
||||
FROM student s
|
||||
JOIN enrollment e ON s.id = e.student_id
|
||||
JOIN course c ON e.course_id = c.id
|
||||
WHERE c.id = #{courseId}
|
||||
|
||||
<select id="getStudentScoresByCourseId" resultMap="StudentScoreResultMap">
|
||||
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}
|
||||
</select>
|
||||
|
||||
<!-- 定义Enrollment结果映射 -->
|
||||
<resultMap id="EnrollmentResult" type="Enrollment">
|
||||
<id column="student_id" property="studentId" />
|
||||
<result column="student_name" property="studentName" />
|
||||
<result column="course_id" property="courseId" />
|
||||
<result column="course_name" property="courseName" />
|
||||
<resultMap id="StudentScoreResultMap" type="edu.gjq.pojo.StudentScore">
|
||||
<association property="student" javaType="edu.gjq.pojo.Student">
|
||||
<id column="student.id" property="id"/>
|
||||
<result column="student.name" property="name"/>
|
||||
<result column="student.gender" property="gender"/>
|
||||
<result column="student.birthday" property="birthday"/>
|
||||
</association>
|
||||
<collection property="scores" ofType="edu.gjq.pojo.Score">
|
||||
<id column="scores[0].id" property="id"/>
|
||||
<result column="scores[0].studentId" property="studentId"/>
|
||||
<result column="scores[0].courseId" property="courseId"/>
|
||||
<result column="scores[0].score" property="score"/>
|
||||
</collection>
|
||||
</resultMap>
|
||||
|
||||
</mapper>
|
|
@ -11,12 +11,12 @@
|
|||
|
||||
|
||||
<update id="update">
|
||||
update grade
|
||||
update score
|
||||
<set>
|
||||
<if test="grade != null">grade = #{grade},</if>
|
||||
<if test="score != null">score = #{score},</if>
|
||||
<if test="updateTime != null">update_time = #{updateTime}</if>
|
||||
</set>
|
||||
where no = #{no}
|
||||
where student_id = #{studentId} and course_id = #{courseId}
|
||||
</update>
|
||||
|
||||
<!-- 删除一条成绩 -->
|
||||
|
@ -37,6 +37,7 @@
|
|||
FROM score, student as s, course as c
|
||||
WHERE s.id = score.student_id and c.id = score.course_id
|
||||
</select>
|
||||
|
||||
<resultMap id="ScoreWithName" type="Score">
|
||||
<id column="id" property="id" />
|
||||
<result column="score" property="score" />
|
||||
|
@ -48,31 +49,6 @@
|
|||
</association>
|
||||
</resultMap>
|
||||
|
||||
<!-- <select id="getByNo" resultMap="GradeWithName">-->
|
||||
<!-- SELECT-->
|
||||
<!-- `no`,-->
|
||||
<!-- student_id,-->
|
||||
<!-- course_id,-->
|
||||
<!-- grade,-->
|
||||
<!-- g.create_time,-->
|
||||
<!-- g.update_time,-->
|
||||
<!-- s.id as uid,-->
|
||||
<!-- s.`name` as student_name-->
|
||||
<!-- FROM grade g-->
|
||||
<!-- JOIN student s ON s.id = g.student_id-->
|
||||
<!-- WHERE `no` = #{no}-->
|
||||
<!-- </select>-->
|
||||
<!-- <resultMap id="GradeWithName" type="Score">-->
|
||||
<!-- <id column="no" property="no" />-->
|
||||
<!-- <result column="student_id" property="studentID" />-->
|
||||
<!-- <result column="course_id" property="courseID" />-->
|
||||
<!-- <result column="grade" property="grade"></result>-->
|
||||
<!-- <result column="creat_time" property="createTime" />-->
|
||||
<!-- <result column="update_time" property="updateTime" />-->
|
||||
<!-- <association property="student" javaType="Student">-->
|
||||
<!-- <id column="uid" property="id" />-->
|
||||
<!-- <result column="student_name" property="name" />-->
|
||||
<!-- </association>-->
|
||||
<!-- </resultMap>-->
|
||||
|
||||
|
||||
</mapper>
|
|
@ -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);
|
||||
scoreMapper.deleteById(16);
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void testGetByNo(){
|
||||
Score score = gradeMapper.getByNo(1);
|
||||
System.out.println(score);
|
||||
}
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
* 课程管理
|
||||
查询所有课程名
|
||||
增加某个课程
|
||||
更新某个课程
|
||||
删除某个课程
|
||||
*
|
||||
*
|
||||
* */
|
||||
@Test
|
||||
public void testGetAllCourses() {
|
||||
List<Course> courses = courseMapper.getAll();
|
||||
|
@ -197,4 +203,21 @@ class ApplicationTests {
|
|||
courseMapper.deleteById("107");
|
||||
}
|
||||
|
||||
//查询这个课程学生选课情况
|
||||
@Test
|
||||
public void testGetStudentScoresByCourseId() {
|
||||
List<StudentScore> studentScores = courseMapper.getStudentScoresByCourseId("101");
|
||||
studentScores.forEach(studentScore -> {
|
||||
Student student = studentScore.getStudent();
|
||||
List<Score> 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());
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue