简单学生管理系统
This commit is contained in:
commit
7ba4645883
|
@ -0,0 +1,73 @@
|
|||
package edu.gjq.controller;
|
||||
|
||||
import edu.gjq.pojo.Course;
|
||||
import edu.gjq.service.CourseService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Controller;
|
||||
import org.springframework.ui.Model;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Controller
|
||||
public class CourseController {
|
||||
private final CourseService courseService;
|
||||
@Autowired
|
||||
public CourseController(CourseService courseService) {
|
||||
this.courseService = courseService;
|
||||
}
|
||||
|
||||
// 加载课程页面
|
||||
@GetMapping("/coursepage")
|
||||
public String getCoursePage(){
|
||||
return "course";
|
||||
}
|
||||
|
||||
// 处理数据
|
||||
@GetMapping("/courses")
|
||||
public String getAllCourses(Model model){
|
||||
List<Course> courses = courseService.getAllCourses();
|
||||
model.addAttribute("courses",courses);
|
||||
return "course";
|
||||
}
|
||||
|
||||
@GetMapping("/addcoursepage")
|
||||
public String addCoursePage(){
|
||||
return "addcourse";
|
||||
}
|
||||
|
||||
@PostMapping("/addcourse")
|
||||
public String addCourse(@ModelAttribute Course course) {
|
||||
courseService.addCourse(course);
|
||||
return "redirect:/courses";
|
||||
}
|
||||
|
||||
@GetMapping("/updatecoursepage/{id}")
|
||||
public String updateCoursePage(@PathVariable String id, Model model){
|
||||
Course course = courseService.getCourseById(id);
|
||||
model.addAttribute("course",course);
|
||||
return "updatecourses";
|
||||
}
|
||||
|
||||
@PostMapping("/updatecourse")
|
||||
public String updateCourse(@ModelAttribute Course course) {
|
||||
courseService.updateCourse(course);
|
||||
return "redirect:/courses";
|
||||
}
|
||||
|
||||
@GetMapping("/deletecourse/{id}")
|
||||
public String deleteCourse(@PathVariable String id) {
|
||||
courseService.deleteCourse(id);
|
||||
return "redirect:/courses";
|
||||
}
|
||||
|
||||
// 查询课程学生选课情况
|
||||
@GetMapping("/enrollments/{courseId}")
|
||||
public String getEnrollments(@PathVariable String courseId, Model model) {
|
||||
// 假设有一个方法 getEnrollmentsByCourseId 来获取选课情况
|
||||
// 这里需要根据实际的业务逻辑来实现
|
||||
List<?> enrollments = courseService.getEnrollmentsByCourseId(courseId);
|
||||
model.addAttribute("enrollments", enrollments);
|
||||
return "enrollments";
|
||||
}
|
||||
}
|
|
@ -0,0 +1,26 @@
|
|||
package edu.gjq.mapper;
|
||||
|
||||
import edu.gjq.pojo.Course;
|
||||
import edu.gjq.pojo.Enrollment;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CourseMapper {
|
||||
// 查询全部课程信息
|
||||
List<Course> getAll();
|
||||
|
||||
// 根据id查询课程
|
||||
Course getById(String id);
|
||||
|
||||
// 添加课程
|
||||
void insertCourse(Course course);
|
||||
|
||||
// 更新课程
|
||||
void update(Course course);
|
||||
|
||||
// 删除课程
|
||||
void deleteById(String id);
|
||||
|
||||
// 查询课程学生选课情况
|
||||
List<Enrollment> getEnrollmentsByCourseId(String courseId);
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
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; // 课程名称
|
||||
}
|
|
@ -0,0 +1,15 @@
|
|||
package edu.gjq.service;
|
||||
|
||||
import edu.gjq.pojo.Course;
|
||||
import edu.gjq.pojo.Enrollment;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public interface CourseService {
|
||||
List<Course> getAllCourses();
|
||||
void addCourse(Course course);
|
||||
Course getCourseById(String id);
|
||||
void updateCourse(Course course);
|
||||
void deleteCourse(String id);
|
||||
List<Enrollment> getEnrollmentsByCourseId(String courseId);
|
||||
}
|
|
@ -0,0 +1,49 @@
|
|||
package edu.gjq.service.impl;
|
||||
|
||||
import edu.gjq.mapper.CourseMapper;
|
||||
import edu.gjq.pojo.Course;
|
||||
import edu.gjq.pojo.Enrollment;
|
||||
import edu.gjq.service.CourseService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Service
|
||||
public class CourseServiceImpl implements CourseService {
|
||||
private final CourseMapper courseMapper;
|
||||
@Autowired
|
||||
public CourseServiceImpl(CourseMapper courseMapper) {
|
||||
this.courseMapper = courseMapper;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Course> getAllCourses() {
|
||||
return courseMapper.getAll();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addCourse(Course course) {
|
||||
courseMapper.insertCourse(course);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Course getCourseById(String id) {
|
||||
return courseMapper.getById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void updateCourse(Course course) {
|
||||
courseMapper.update(course);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void deleteCourse(String id) {
|
||||
courseMapper.deleteById(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Enrollment> getEnrollmentsByCourseId(String courseId) {
|
||||
return (List<Enrollment>) courseMapper.getEnrollmentsByCourseId(courseId);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<!DOCTYPE mapper
|
||||
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
||||
"https://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="edu.gjq.mapper.CourseMapper">
|
||||
|
||||
<!-- 通用查询语句 -->
|
||||
<sql id="commonSelect">
|
||||
select id, name
|
||||
from course
|
||||
</sql>
|
||||
|
||||
<!-- 查询所有课程 -->
|
||||
<select id="getAll" resultType="Course">
|
||||
<include refid="commonSelect"/>
|
||||
</select>
|
||||
|
||||
<!-- 根据id查询课程 -->
|
||||
<select id="getById" resultType="Course">
|
||||
<include refid="commonSelect"/>
|
||||
<where>
|
||||
id = #{id}
|
||||
</where>
|
||||
</select>
|
||||
|
||||
<!-- 插入课程 -->
|
||||
<insert id="insertCourse" parameterType="Course">
|
||||
insert into course (id, name) values (#{id}, #{name})
|
||||
</insert>
|
||||
|
||||
<!-- 更新课程 -->
|
||||
<update id="update">
|
||||
update course
|
||||
<set>
|
||||
<if test="name != null">name = #{name},</if>
|
||||
</set>
|
||||
where id = #{id}
|
||||
</update>
|
||||
|
||||
<!-- 删除课程 -->
|
||||
<delete id="deleteById">
|
||||
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>
|
||||
|
||||
<!-- 定义Enrollment结果映射 -->
|
||||
<resultMap id="EnrollmentResult" type="Enrollment">
|
||||
<id column="student_id" property="studentId" />
|
||||
<result column="student_name" property="studentName" />
|
||||
<id column="course_id" property="courseId" />
|
||||
<result column="course_name" property="courseName" />
|
||||
</resultMap>
|
||||
|
||||
</mapper>
|
|
@ -0,0 +1,23 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en" xmlns:th="http://www.thymeleaf.org">
|
||||
<body>
|
||||
<meta charset="UTF-8">
|
||||
<h1>教务系统</h1>
|
||||
<h2>课程选课情况</h2>
|
||||
<a th:href="@{/courses}">返回课程列表</a>
|
||||
<table border="1">
|
||||
<tr>
|
||||
<td>学生ID</td>
|
||||
<td>学生姓名</td>
|
||||
<td>课程ID</td>
|
||||
<td>课程名</td>
|
||||
</tr>
|
||||
<tr th:each="enrollment : ${enrollments}">
|
||||
<td th:text="${enrollment.studentId}"></td>
|
||||
<td th:text="${enrollment.studentName}"></td>
|
||||
<td th:text="${enrollment.courseId}"></td>
|
||||
<td th:text="${enrollment.courseName}"></td>
|
||||
</tr>
|
||||
</table>
|
||||
</body>
|
||||
</html>
|
Loading…
Reference in New Issue