简单学生管理系统
This commit is contained in:
parent
2833d5e64c
commit
db9198a49e
|
@ -1,6 +1,8 @@
|
||||||
package edu.gjq.controller;
|
package edu.gjq.controller;
|
||||||
|
|
||||||
import edu.gjq.pojo.Course;
|
import edu.gjq.pojo.Course;
|
||||||
|
import edu.gjq.pojo.Score;
|
||||||
|
import edu.gjq.pojo.StudentScore;
|
||||||
import edu.gjq.service.CourseService;
|
import edu.gjq.service.CourseService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Controller;
|
import org.springframework.stereotype.Controller;
|
||||||
|
@ -64,10 +66,8 @@ public class CourseController {
|
||||||
// 查询课程学生选课情况
|
// 查询课程学生选课情况
|
||||||
@GetMapping("/enrollments/{courseId}")
|
@GetMapping("/enrollments/{courseId}")
|
||||||
public String getEnrollments(@PathVariable String courseId, Model model) {
|
public String getEnrollments(@PathVariable String courseId, Model model) {
|
||||||
// 假设有一个方法 getEnrollmentsByCourseId 来获取选课情况
|
List<StudentScore> scores = courseService.getStudentScoresByCourseId(courseId);
|
||||||
// 这里需要根据实际的业务逻辑来实现
|
model.addAttribute("scores", scores);
|
||||||
List<?> enrollments = courseService.getEnrollmentsByCourseId(courseId);
|
return "scores";
|
||||||
model.addAttribute("enrollments", enrollments);
|
|
||||||
return "enrollments";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -1,7 +1,8 @@
|
||||||
package edu.gjq.mapper;
|
package edu.gjq.mapper;
|
||||||
|
|
||||||
import edu.gjq.pojo.Course;
|
import edu.gjq.pojo.Course;
|
||||||
import edu.gjq.pojo.Enrollment;
|
import edu.gjq.pojo.Score;
|
||||||
|
import edu.gjq.pojo.StudentScore;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -21,7 +22,7 @@ public interface CourseMapper {
|
||||||
// 删除课程
|
// 删除课程
|
||||||
void deleteById(String id);
|
void deleteById(String id);
|
||||||
|
|
||||||
// 查询课程学生选课情况
|
// 查询某个课程的学生选课情况
|
||||||
List<Enrollment> getEnrollmentsByCourseId(String courseId);
|
List<StudentScore> getStudentScoresByCourseId(String courseId);
|
||||||
|
|
||||||
}
|
}
|
|
@ -21,4 +21,5 @@ public interface ScoreMapper {
|
||||||
|
|
||||||
// 根据no查询成绩
|
// 根据no查询成绩
|
||||||
List<Score> getAll();
|
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 Student student;
|
||||||
private Course course;
|
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 {
|
public class StudentScore {
|
||||||
private Student student;
|
private Student student;
|
||||||
private List<Score> scores;
|
private List<Score> scores;
|
||||||
|
|
||||||
|
|
||||||
|
public Student getStudent() {
|
||||||
|
return student;
|
||||||
|
}
|
||||||
|
|
||||||
|
public List<Score> getScore() {
|
||||||
|
return scores;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
package edu.gjq.service;
|
package edu.gjq.service;
|
||||||
|
|
||||||
import edu.gjq.pojo.Course;
|
import edu.gjq.pojo.Course;
|
||||||
import edu.gjq.pojo.Enrollment;
|
import edu.gjq.pojo.StudentScore;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
|
@ -11,5 +11,5 @@ public interface CourseService {
|
||||||
Course getCourseById(String id);
|
Course getCourseById(String id);
|
||||||
void updateCourse(Course course);
|
void updateCourse(Course course);
|
||||||
void deleteCourse(String id);
|
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.mapper.CourseMapper;
|
||||||
import edu.gjq.pojo.Course;
|
import edu.gjq.pojo.Course;
|
||||||
import edu.gjq.pojo.Enrollment;
|
import edu.gjq.pojo.StudentScore;
|
||||||
import edu.gjq.service.CourseService;
|
import edu.gjq.service.CourseService;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
@ -43,7 +43,7 @@ public class CourseServiceImpl implements CourseService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Enrollment> getEnrollmentsByCourseId(String courseId) {
|
public List<StudentScore> getStudentScoresByCourseId(String courseId) {
|
||||||
return (List<Enrollment>) courseMapper.getEnrollmentsByCourseId(courseId);
|
return courseMapper.getStudentScoresByCourseId(courseId);
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -23,6 +23,7 @@
|
||||||
</where>
|
</where>
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
<!-- 插入课程 -->
|
<!-- 插入课程 -->
|
||||||
<insert id="insertCourse" parameterType="Course">
|
<insert id="insertCourse" parameterType="Course">
|
||||||
insert into course (id, name) values (#{id}, #{name})
|
insert into course (id, name) values (#{id}, #{name})
|
||||||
|
@ -42,21 +43,37 @@
|
||||||
delete from course where id = #{id}
|
delete from course where id = #{id}
|
||||||
</delete>
|
</delete>
|
||||||
|
|
||||||
<!-- 查询课程学生选课情况 -->
|
|
||||||
<select id="getEnrollmentsByCourseId" resultType="Enrollment">
|
<select id="getStudentScoresByCourseId" resultMap="StudentScoreResultMap">
|
||||||
SELECT s.id as student_id, s.name as student_name, c.id as course_id, c.name as course_name
|
SELECT
|
||||||
FROM student s
|
s.id as "student.id",
|
||||||
JOIN enrollment e ON s.id = e.student_id
|
s.name as "student.name",
|
||||||
JOIN course c ON e.course_id = c.id
|
s.gender as "student.gender",
|
||||||
WHERE c.id = #{courseId}
|
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>
|
</select>
|
||||||
|
|
||||||
<!-- 定义Enrollment结果映射 -->
|
<resultMap id="StudentScoreResultMap" type="edu.gjq.pojo.StudentScore">
|
||||||
<resultMap id="EnrollmentResult" type="Enrollment">
|
<association property="student" javaType="edu.gjq.pojo.Student">
|
||||||
<id column="student_id" property="studentId" />
|
<id column="student.id" property="id"/>
|
||||||
<result column="student_name" property="studentName" />
|
<result column="student.name" property="name"/>
|
||||||
<result column="course_id" property="courseId" />
|
<result column="student.gender" property="gender"/>
|
||||||
<result column="course_name" property="courseName" />
|
<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>
|
</resultMap>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
|
@ -11,12 +11,12 @@
|
||||||
|
|
||||||
|
|
||||||
<update id="update">
|
<update id="update">
|
||||||
update grade
|
update score
|
||||||
<set>
|
<set>
|
||||||
<if test="grade != null">grade = #{grade},</if>
|
<if test="score != null">score = #{score},</if>
|
||||||
<if test="updateTime != null"> update_time = #{updateTime}</if>
|
<if test="updateTime != null">update_time = #{updateTime}</if>
|
||||||
</set>
|
</set>
|
||||||
where no = #{no}
|
where student_id = #{studentId} and course_id = #{courseId}
|
||||||
</update>
|
</update>
|
||||||
|
|
||||||
<!-- 删除一条成绩 -->
|
<!-- 删除一条成绩 -->
|
||||||
|
@ -37,6 +37,7 @@
|
||||||
FROM score, student as s, course as c
|
FROM score, student as s, course as c
|
||||||
WHERE s.id = score.student_id and c.id = score.course_id
|
WHERE s.id = score.student_id and c.id = score.course_id
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
<resultMap id="ScoreWithName" type="Score">
|
<resultMap id="ScoreWithName" type="Score">
|
||||||
<id column="id" property="id" />
|
<id column="id" property="id" />
|
||||||
<result column="score" property="score" />
|
<result column="score" property="score" />
|
||||||
|
@ -48,31 +49,6 @@
|
||||||
</association>
|
</association>
|
||||||
</resultMap>
|
</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>
|
</mapper>
|
|
@ -51,39 +51,28 @@ class ApplicationTests {
|
||||||
public void testInsertAccount(){
|
public void testInsertAccount(){
|
||||||
// 新增账号
|
// 新增账号
|
||||||
Account account = new Account();
|
Account account = new Account();
|
||||||
account.setAccount("12143");
|
account.setAccount("12149");
|
||||||
account.setPassword("123456");
|
account.setPassword("123456");
|
||||||
account.setCreateBy(1);
|
account.setCreateBy(1);
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
account.setCreateTime(now);
|
account.setCreateTime(now);
|
||||||
accountMapper.insertAccount(account);
|
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
|
@Test
|
||||||
public void testInsertScore(){
|
public void testInsertStudent() {
|
||||||
Score score = new Score();
|
Student student = new Student();
|
||||||
score.setStudentId("12142");
|
student.setId("12149");
|
||||||
score.setCourseId("106");
|
student.setName("小星星");
|
||||||
score.setScore(60);
|
student.setGender(0);
|
||||||
score.setCreateBy(1);
|
student.setBirthday(LocalDate.of(2014, 6, 4));
|
||||||
|
student.setCreateBy(1);
|
||||||
LocalDateTime now = LocalDateTime.now();
|
LocalDateTime now = LocalDateTime.now();
|
||||||
score.setCreateTime(now);
|
student.setCreateTime(now);
|
||||||
scoreMapper.insert(score);
|
studentMapper.insertStudent(student);
|
||||||
System.out.println(score.getId());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 更新学生姓名
|
||||||
@Test
|
@Test
|
||||||
public void testUpdateStudent(){
|
public void testUpdateStudent(){
|
||||||
Student student = new Student();
|
Student student = new Student();
|
||||||
|
@ -145,31 +134,48 @@ class ApplicationTests {
|
||||||
System.out.println("课程:" + score.getCourse().getName() + ",成绩:" + score.getScore());
|
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(){
|
public void testGradeUpdate(){
|
||||||
Score score = new Score();
|
Score score = new Score();
|
||||||
score.setStudentID("12142");
|
score.setStudentId("12142");
|
||||||
score.setCourseID("101");
|
score.setCourseId("106");
|
||||||
score.setGrade(90);
|
score.setScore(100);
|
||||||
score.setUpdateTime(LocalDateTime.now());
|
score.setUpdateTime(LocalDateTime.now());
|
||||||
gradeMapper.update(score);
|
scoreMapper.update(score);
|
||||||
System.out.println(score);
|
System.out.println(score);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Test
|
|
||||||
public void testGradeDelete(){
|
|
||||||
gradeMapper.deleteByNo(24);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testGetByNo(){
|
public void testGradeDelete(){
|
||||||
Score score = gradeMapper.getByNo(1);
|
scoreMapper.deleteById(16);
|
||||||
System.out.println(score);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
*/
|
|
||||||
|
|
||||||
|
|
||||||
|
/*
|
||||||
|
* 课程管理
|
||||||
|
查询所有课程名
|
||||||
|
增加某个课程
|
||||||
|
更新某个课程
|
||||||
|
删除某个课程
|
||||||
|
*
|
||||||
|
*
|
||||||
|
* */
|
||||||
@Test
|
@Test
|
||||||
public void testGetAllCourses() {
|
public void testGetAllCourses() {
|
||||||
List<Course> courses = courseMapper.getAll();
|
List<Course> courses = courseMapper.getAll();
|
||||||
|
@ -196,5 +202,22 @@ class ApplicationTests {
|
||||||
public void testDeleteCourse() {
|
public void testDeleteCourse() {
|
||||||
courseMapper.deleteById("107");
|
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