From d295140b27c2c7fb728676ec645736ba855b14af Mon Sep 17 00:00:00 2001 From: zrh050423 <14331304+zrh050423@user.noreply.gitee.com> Date: Mon, 28 Oct 2024 22:46:33 +0800 Subject: [PATCH] 1 --- .idea/.gitignore | 8 + ...leStudentManagementSystem_Web_exploded.xml | 13 ++ .idea/compiler.xml | 20 ++ .idea/dataSources.xml | 19 ++ .idea/encodings.xml | 6 + .idea/jarRepositories.xml | 20 ++ .idea/misc.xml | 15 ++ .idea/modules.xml | 8 + .idea/vcs.xml | 6 + JavaEEHW1.iml | 8 + Readme.md | 38 ++++ SimpleStudentManagementSystem/pom.xml | 96 +++++++++ .../src/main/java/edu/zrh/Application.java | 15 ++ .../controller/AccountStudentController.java | 30 +++ .../edu/zrh/controller/LoginController.java | 30 +++ .../edu/zrh/controller/StudentController.java | 49 +++++ .../java/edu/zrh/mapper/AccountMapper.java | 18 ++ .../main/java/edu/zrh/mapper/ScoreMapper.java | 24 +++ .../java/edu/zrh/mapper/StudentMapper.java | 32 +++ .../edu/zrh/mapper/StudentScoreMapper.java | 8 + .../src/main/java/edu/zrh/pojo/Account.java | 13 ++ .../main/java/edu/zrh/pojo/BaseEntity.java | 13 ++ .../src/main/java/edu/zrh/pojo/Course.java | 9 + .../src/main/java/edu/zrh/pojo/Gender.java | 9 + .../src/main/java/edu/zrh/pojo/Score.java | 18 ++ .../src/main/java/edu/zrh/pojo/Student.java | 18 ++ .../main/java/edu/zrh/pojo/StudentScore.java | 11 + .../java/edu/zrh/service/AccountService.java | 9 + .../zrh/service/AccountStudentService.java | 12 ++ .../java/edu/zrh/service/StudentService.java | 12 ++ .../zrh/service/impl/AccountServiceImpl.java | 31 +++ .../impl/AccountStudentServiceImpl.java | 50 +++++ .../zrh/service/impl/StudentServiceImpl.java | 43 ++++ .../src/main/resources/application.properties | 25 +++ .../main/resources/mapper/AccountMapper.xml | 37 ++++ .../src/main/resources/mapper/ScoreMapper.xml | 78 +++++++ .../main/resources/mapper/StudentMapper.xml | 122 +++++++++++ .../resources/mapper/StudentScoreMapper.xml | 24 +++ .../main/resources/templates/addstudent.html | 16 ++ .../src/main/resources/templates/index.html | 15 ++ .../src/main/resources/templates/login.html | 17 ++ .../src/main/resources/templates/student.html | 31 +++ .../resources/templates/updatestudent.html | 16 ++ .../test/java/edu/zrh/ApplicationTests.java | 201 ++++++++++++++++++ .../target/classes/application.properties | 25 +++ .../target/classes/edu/zrh/Application.class | Bin 0 -> 785 bytes .../controller/AccountStudentController.class | Bin 0 -> 1806 bytes .../edu/zrh/controller/LoginController.class | Bin 0 -> 1606 bytes .../zrh/controller/StudentController.class | Bin 0 -> 2592 bytes .../edu/zrh/mapper/AccountMapper.class | Bin 0 -> 470 bytes .../classes/edu/zrh/mapper/ScoreMapper.class | Bin 0 -> 502 bytes .../edu/zrh/mapper/StudentMapper.class | Bin 0 -> 841 bytes .../edu/zrh/mapper/StudentScoreMapper.class | Bin 0 -> 235 bytes .../target/classes/edu/zrh/pojo/Account.class | Bin 0 -> 3993 bytes .../classes/edu/zrh/pojo/BaseEntity.class | Bin 0 -> 3457 bytes .../target/classes/edu/zrh/pojo/Course.class | Bin 0 -> 2379 bytes .../target/classes/edu/zrh/pojo/Gender.class | Bin 0 -> 2379 bytes .../target/classes/edu/zrh/pojo/Score.class | Bin 0 -> 5023 bytes .../target/classes/edu/zrh/pojo/Student.class | Bin 0 -> 4709 bytes .../classes/edu/zrh/pojo/StudentScore.class | Bin 0 -> 2657 bytes .../edu/zrh/service/AccountService.class | Bin 0 -> 315 bytes .../zrh/service/AccountStudentService.class | Bin 0 -> 424 bytes .../edu/zrh/service/StudentService.class | Bin 0 -> 449 bytes .../zrh/service/impl/AccountServiceImpl.class | Bin 0 -> 1371 bytes .../impl/AccountStudentServiceImpl.class | Bin 0 -> 2078 bytes .../zrh/service/impl/StudentServiceImpl.class | Bin 0 -> 1709 bytes .../target/classes/mapper/AccountMapper.xml | 37 ++++ .../target/classes/mapper/ScoreMapper.xml | 78 +++++++ .../target/classes/mapper/StudentMapper.xml | 122 +++++++++++ .../classes/mapper/StudentScoreMapper.xml | 24 +++ .../target/classes/templates/addstudent.html | 16 ++ .../target/classes/templates/index.html | 15 ++ .../target/classes/templates/login.html | 17 ++ .../target/classes/templates/student.html | 31 +++ .../classes/templates/updatestudent.html | 16 ++ .../edu/zrh/ApplicationTests.class | Bin 0 -> 7356 bytes 76 files changed, 1674 insertions(+) create mode 100644 .idea/.gitignore create mode 100644 .idea/artifacts/SimpleStudentManagementSystem_Web_exploded.xml create mode 100644 .idea/compiler.xml create mode 100644 .idea/dataSources.xml create mode 100644 .idea/encodings.xml create mode 100644 .idea/jarRepositories.xml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml create mode 100644 JavaEEHW1.iml create mode 100644 Readme.md create mode 100644 SimpleStudentManagementSystem/pom.xml create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/Application.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/AccountStudentController.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/LoginController.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/StudentController.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/AccountMapper.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/ScoreMapper.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/StudentMapper.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/StudentScoreMapper.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Account.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/BaseEntity.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Course.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Gender.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Score.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Student.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/StudentScore.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/service/AccountService.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/service/AccountStudentService.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/service/StudentService.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/AccountServiceImpl.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/AccountStudentServiceImpl.java create mode 100644 SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/StudentServiceImpl.java create mode 100644 SimpleStudentManagementSystem/src/main/resources/application.properties create mode 100644 SimpleStudentManagementSystem/src/main/resources/mapper/AccountMapper.xml create mode 100644 SimpleStudentManagementSystem/src/main/resources/mapper/ScoreMapper.xml create mode 100644 SimpleStudentManagementSystem/src/main/resources/mapper/StudentMapper.xml create mode 100644 SimpleStudentManagementSystem/src/main/resources/mapper/StudentScoreMapper.xml create mode 100644 SimpleStudentManagementSystem/src/main/resources/templates/addstudent.html create mode 100644 SimpleStudentManagementSystem/src/main/resources/templates/index.html create mode 100644 SimpleStudentManagementSystem/src/main/resources/templates/login.html create mode 100644 SimpleStudentManagementSystem/src/main/resources/templates/student.html create mode 100644 SimpleStudentManagementSystem/src/main/resources/templates/updatestudent.html create mode 100644 SimpleStudentManagementSystem/src/test/java/edu/zrh/ApplicationTests.java create mode 100644 SimpleStudentManagementSystem/target/classes/application.properties create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/Application.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/controller/AccountStudentController.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/controller/LoginController.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/controller/StudentController.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/mapper/AccountMapper.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/mapper/ScoreMapper.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/mapper/StudentMapper.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/mapper/StudentScoreMapper.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Account.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/BaseEntity.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Course.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Gender.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Score.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Student.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/StudentScore.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/service/AccountService.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/service/AccountStudentService.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/service/StudentService.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/service/impl/AccountServiceImpl.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/service/impl/AccountStudentServiceImpl.class create mode 100644 SimpleStudentManagementSystem/target/classes/edu/zrh/service/impl/StudentServiceImpl.class create mode 100644 SimpleStudentManagementSystem/target/classes/mapper/AccountMapper.xml create mode 100644 SimpleStudentManagementSystem/target/classes/mapper/ScoreMapper.xml create mode 100644 SimpleStudentManagementSystem/target/classes/mapper/StudentMapper.xml create mode 100644 SimpleStudentManagementSystem/target/classes/mapper/StudentScoreMapper.xml create mode 100644 SimpleStudentManagementSystem/target/classes/templates/addstudent.html create mode 100644 SimpleStudentManagementSystem/target/classes/templates/index.html create mode 100644 SimpleStudentManagementSystem/target/classes/templates/login.html create mode 100644 SimpleStudentManagementSystem/target/classes/templates/student.html create mode 100644 SimpleStudentManagementSystem/target/classes/templates/updatestudent.html create mode 100644 SimpleStudentManagementSystem/target/test-classes/edu/zrh/ApplicationTests.class diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..13566b8 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,8 @@ +# Default ignored files +/shelf/ +/workspace.xml +# Editor-based HTTP Client requests +/httpRequests/ +# Datasource local storage ignored files +/dataSources/ +/dataSources.local.xml diff --git a/.idea/artifacts/SimpleStudentManagementSystem_Web_exploded.xml b/.idea/artifacts/SimpleStudentManagementSystem_Web_exploded.xml new file mode 100644 index 0000000..5160396 --- /dev/null +++ b/.idea/artifacts/SimpleStudentManagementSystem_Web_exploded.xml @@ -0,0 +1,13 @@ + + + $PROJECT_DIR$/out/artifacts/SimpleStudentManagementSystem_Web_exploded + + + + + + + + + + \ No newline at end of file diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..2461099 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml new file mode 100644 index 0000000..28e60a1 --- /dev/null +++ b/.idea/dataSources.xml @@ -0,0 +1,19 @@ + + + + + mysql.8 + true + true + $PROJECT_DIR$/SimpleStudentManagementSystem/src/main/resources/application.properties + com.mysql.cj.jdbc.Driver + jdbc:mysql://10.33.66.120:3306/mb202201080137 + + + + + + $ProjectFileDir$ + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..4821b4a --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..5a2f139 --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..1dab215 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,15 @@ + + + + + + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 0000000..a2a5b54 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/JavaEEHW1.iml b/JavaEEHW1.iml new file mode 100644 index 0000000..9a5cfce --- /dev/null +++ b/JavaEEHW1.iml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/Readme.md b/Readme.md new file mode 100644 index 0000000..6b25699 --- /dev/null +++ b/Readme.md @@ -0,0 +1,38 @@ +# JavaEE第1次作业 +## SpringBoot + Thymeleaf 学生管理系统 +### 要求 +在已有代码基础上,增加课程管理和成绩管理的内容。 +请注意: +1. 请重新建立一个名为“学号-HW1”的工程,并在你的git下重新建立名为“学号-HW1”的仓库,如工程和仓库名为:“202208010101-HW1” +2. 一个新工程,请先检查Maven设置的仓库是否正确 +3. application.properties可能会乱码,乱码请查看语雀 +4. 数据库请使用统一提供的 "mb" 开头的数据库 +5. 主包名必须是你名字的缩写,如张三的包名应为:**edu.zs** +6. service层必须先写接口再写实现类 +7. 请写好注释 +8. 提交作业时,请提交仓库地址与运行结果截图 + +#### 学生管理 +##### 选做内容 +1. 显示性别时,显示具体的“男”或“女”,而不是数字 + +#### 课程管理 +##### 必做内容 +1. 查询所有课程名 +2. 增加某个课程 +3. 更新某个课程 +4. 删除某个课程 +##### 选做内容 +1. 查询这个课程学生选课情况 + +#### 成绩管理 +##### 必做内容 +1. 查询某个人所有成绩,注:查询时需要显示姓名和课程名,不能只有编号 +2. 增加某个人某条成绩 +3. 更新某个人某条成绩 +4. 删除某个人某条成绩 +##### 选做内容 +1. 查询某人成绩同时计算平均分 + +### 更新内容 +1. 2024-10-20: 更新化简项目后,残留的cookie \ No newline at end of file diff --git a/SimpleStudentManagementSystem/pom.xml b/SimpleStudentManagementSystem/pom.xml new file mode 100644 index 0000000..ab2f390 --- /dev/null +++ b/SimpleStudentManagementSystem/pom.xml @@ -0,0 +1,96 @@ + + + 4.0.0 + + org.springframework.boot + spring-boot-starter-parent + 3.3.4 + + + edu.zrh + SimpleStudentManagementSystem + 0.0.1-SNAPSHOT + SimpleStudentManagementSystem + SimpleStudentManagementSystem + + + + + + + + + + + + + + + 17 + + + + org.springframework.boot + spring-boot-starter-web + + + org.mybatis.spring.boot + mybatis-spring-boot-starter + 3.0.3 + + + com.mysql + mysql-connector-j + runtime + + + org.projectlombok + lombok + true + + + org.springframework.boot + spring-boot-starter-test + test + + + org.mybatis.spring.boot + mybatis-spring-boot-starter-test + 3.0.3 + test + + + org.springframework.boot + spring-boot-starter-thymeleaf + + + + org.springframework.boot + spring-boot-devtools + true + + + + + + + org.graalvm.buildtools + native-maven-plugin + + + org.springframework.boot + spring-boot-maven-plugin + + + + org.projectlombok + lombok + + + + + + + + diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/Application.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/Application.java new file mode 100644 index 0000000..85c2a34 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/Application.java @@ -0,0 +1,15 @@ +package edu.zrh; + +import org.mybatis.spring.annotation.MapperScan; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; + +@SpringBootApplication() +@MapperScan("edu.zrh.mapper") +public class Application { + + public static void main(String[] args) { + SpringApplication.run(Application.class, args); + } + +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/AccountStudentController.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/AccountStudentController.java new file mode 100644 index 0000000..1ac1263 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/AccountStudentController.java @@ -0,0 +1,30 @@ +package edu.zrh.controller; + +import edu.zrh.pojo.Student; +import edu.zrh.service.AccountStudentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.*; + +@Controller +public class AccountStudentController { + private final AccountStudentService accountStudentService; + @Autowired + public AccountStudentController(AccountStudentService accountStudentService) { + this.accountStudentService = accountStudentService; + } + @PostMapping("/accountstudent") + public String addAccountStudent(Student student, + Model model){ + accountStudentService.addStudentAccount(student); + return "redirect:/students"; + } + + @GetMapping("/deleteaccountstudent/{account}") + public String deleteAccountStudent(@PathVariable String account, Model model){ + System.out.println(account); + accountStudentService.deleteStudentAccount(account); + return "redirect:/students"; + } +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/LoginController.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/LoginController.java new file mode 100644 index 0000000..941dad0 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/LoginController.java @@ -0,0 +1,30 @@ +package edu.zrh.controller; + +import edu.zrh.service.AccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Controller; +import org.springframework.ui.Model; +import org.springframework.web.bind.annotation.GetMapping; +import org.springframework.web.bind.annotation.PostMapping; + +@Controller +public class LoginController { + private final AccountService accountService; + @Autowired + public LoginController(AccountService accountService) { + this.accountService = accountService; + } + @GetMapping({"/", "/login"}) + public String loginPage(Model model){ + model.addAttribute("title","教务系统"); + return "login"; + } + @PostMapping("/login") + public String login(String username, String password, Model model){ + boolean result = accountService.validate(username, password); + if (result){ + return "index"; + } + return "login"; + } +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/StudentController.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/StudentController.java new file mode 100644 index 0000000..88cae4d --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/controller/StudentController.java @@ -0,0 +1,49 @@ +package edu.zrh.controller; + +import edu.zrh.pojo.Student; +import edu.zrh.service.StudentService; +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 StudentController { + private final StudentService studentService; + @Autowired + public StudentController(StudentService studentService) { + this.studentService = studentService; + } + // 加载页面 + @GetMapping("/studentpage") + public String getStudentPage(){ + return "student"; + } + + @GetMapping("addstudentpage") + public String addStudentPage(){ + return "addstudent"; + } + // 处理数据 + @GetMapping("/students") + public String getAllStudents(Model model){ + List students = studentService.getAllStudents(); + model.addAttribute("students",students); + return "student"; + } + @GetMapping("updatestudentpage/{id}") + public String updateStudentPage(@PathVariable String id, + Model model){ + Student student = studentService.getStudentById(id); + System.out.println(student); + model.addAttribute("student",student); + return "updatestudent"; + } + @PostMapping("/updatestudent") + public String updateStudent(@ModelAttribute Student student) { + studentService.updateStudent(student); + return "redirect:/students"; + } +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/AccountMapper.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/AccountMapper.java new file mode 100644 index 0000000..c51c4b2 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/AccountMapper.java @@ -0,0 +1,18 @@ +package edu.zrh.mapper; + +import edu.zrh.pojo.Account; + +import java.util.List; + + +public interface AccountMapper { + // 查询账号 + Account getAccount(String account); + // 添加账号 + void insertAccount(Account account); + + // 根据账号获取学生信息 + List getAccountWithDetails(); + + void deleteByAccount(String account); +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/ScoreMapper.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/ScoreMapper.java new file mode 100644 index 0000000..027145c --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/ScoreMapper.java @@ -0,0 +1,24 @@ +package edu.zrh.mapper; + +import edu.zrh.pojo.Score; + +import java.util.List; + + +public interface ScoreMapper { + + // 新增成绩 + void insert(Score score); + + // 更新成绩 + void update(Score score); + + // 根据id删除成绩 + void deleteById(Integer id); + + // 批量删除成绩 + void deleteByIds(List ids); + + // 根据no查询成绩 + List getAll(); +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/StudentMapper.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/StudentMapper.java new file mode 100644 index 0000000..c6650e4 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/StudentMapper.java @@ -0,0 +1,32 @@ +package edu.zrh.mapper; + +import edu.zrh.pojo.Score; +import edu.zrh.pojo.Student; + +import java.util.List; + +// 在运行时会自动生成该接口的实现类对象 并将该对交给IOC容器管理 成为一个bean + +public interface StudentMapper { + // 查询全部学生信息 + List getAll(); + List getAllCourseNames(); + // 根据id查询学生 + Student getById(String id); + + // 添加学生 + void insertStudent(Student student); + + // 动态条件查询 根据姓名字数和性别查询 + List getByCondition(Integer len, Integer gender); + + // 动态更新学生 + void update(Student student); + + List getAllWithGender(); + + Student getStudentScoresById(String id); + + void deleteById(String id); +} + diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/StudentScoreMapper.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/StudentScoreMapper.java new file mode 100644 index 0000000..219e21b --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/mapper/StudentScoreMapper.java @@ -0,0 +1,8 @@ +package edu.zrh.mapper; + +import edu.zrh.pojo.StudentScore; + + +public interface StudentScoreMapper { + StudentScore getByNo(String id); +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Account.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Account.java new file mode 100644 index 0000000..51d792a --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Account.java @@ -0,0 +1,13 @@ +package edu.zrh.pojo; + +import lombok.Data; + +@Data +public class Account extends BaseEntity { + private Integer id; + private String account; + private String password; + private Integer role = 1; + // 一对一查询 + private Student studentDetails; +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/BaseEntity.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/BaseEntity.java new file mode 100644 index 0000000..d5353a9 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/BaseEntity.java @@ -0,0 +1,13 @@ +package edu.zrh.pojo; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data +public class BaseEntity { + private Integer createBy; + private LocalDateTime createTime; + private Integer updateBy; + private LocalDateTime updateTime; +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Course.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Course.java new file mode 100644 index 0000000..5ce425d --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Course.java @@ -0,0 +1,9 @@ +package edu.zrh.pojo; + +import lombok.Data; + +@Data +public class Course extends BaseEntity{ + private Integer id; + private String name; +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Gender.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Gender.java new file mode 100644 index 0000000..b741228 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Gender.java @@ -0,0 +1,9 @@ +package edu.zrh.pojo; + +import lombok.Data; + +@Data +public class Gender extends BaseEntity { + private Integer id; + private String name; +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Score.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Score.java new file mode 100644 index 0000000..bf3f374 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Score.java @@ -0,0 +1,18 @@ +package edu.zrh.pojo; + +import lombok.Data; + +import java.time.LocalDateTime; + +@Data + +public class Score extends BaseEntity{ + private Integer id; + private String studentId; + private String courseId; + private Integer score; + private LocalDateTime createTime; + // 学生和课程是一的一方 + private Student student; + private Course course; +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Student.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Student.java new file mode 100644 index 0000000..fe02e24 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/Student.java @@ -0,0 +1,18 @@ +package edu.zrh.pojo; + +import lombok.*; + +import java.time.LocalDate; +import java.util.List; + +@Data +public class Student extends BaseEntity { + private String id; + private String name; + private Integer gender; + // @DateTimeFormat(pattern = "yyyy-MM-dd") + private LocalDate birthday; + // 性别是一的一方 + private Gender genderDetails; + private List scores; +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/StudentScore.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/StudentScore.java new file mode 100644 index 0000000..3e758c9 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/pojo/StudentScore.java @@ -0,0 +1,11 @@ +package edu.zrh.pojo; + +import lombok.Data; + +import java.util.List; + +@Data +public class StudentScore { + private Student student; + private List scores; +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/AccountService.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/AccountService.java new file mode 100644 index 0000000..8208574 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/AccountService.java @@ -0,0 +1,9 @@ +package edu.zrh.service; + +import edu.zrh.pojo.Account; + +public interface AccountService { + // 验证数据集账号密码 + boolean validate(String username, String password); + void insertAccount(Account account); +} \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/AccountStudentService.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/AccountStudentService.java new file mode 100644 index 0000000..dc46c9d --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/AccountStudentService.java @@ -0,0 +1,12 @@ +package edu.zrh.service; + + +import edu.zrh.pojo.Student; +import org.springframework.transaction.annotation.Transactional; + +public interface AccountStudentService { + @Transactional + void addStudentAccount(Student student); + @Transactional + void deleteStudentAccount(String account); +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/StudentService.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/StudentService.java new file mode 100644 index 0000000..57fb123 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/StudentService.java @@ -0,0 +1,12 @@ +package edu.zrh.service; + +import edu.zrh.pojo.Student; + +import java.util.List; + +public interface StudentService { + List getAllStudents(); + void insertStudent(Student student); + Student getStudentById(String id); + void updateStudent(Student student); +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/AccountServiceImpl.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/AccountServiceImpl.java new file mode 100644 index 0000000..473420b --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/AccountServiceImpl.java @@ -0,0 +1,31 @@ +package edu.zrh.service.impl; + +import edu.zrh.mapper.AccountMapper; +import edu.zrh.pojo.Account; +import edu.zrh.service.AccountService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +@Service +public class AccountServiceImpl implements AccountService { + + private final AccountMapper accountMapper; + @Autowired + public AccountServiceImpl(AccountMapper accountMapper) { + this.accountMapper = accountMapper; + } + + @Override + public boolean validate(String username, String password) { + Account dbAccount = accountMapper.getAccount(username); + if(dbAccount != null && dbAccount.getPassword().equals(password)){ + return true; + } + return false; + } + + @Override + public void insertAccount(Account account) { + accountMapper.insertAccount(account); + } +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/AccountStudentServiceImpl.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/AccountStudentServiceImpl.java new file mode 100644 index 0000000..fafabde --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/AccountStudentServiceImpl.java @@ -0,0 +1,50 @@ +package edu.zrh.service.impl; + +import edu.zrh.mapper.AccountMapper; +import edu.zrh.mapper.StudentMapper; +import edu.zrh.pojo.Account; +import edu.zrh.pojo.Student; +import edu.zrh.service.AccountStudentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.time.LocalDateTime; + +@Service +public class AccountStudentServiceImpl implements AccountStudentService { + + private final AccountMapper accountMapper; + private final StudentMapper studentMapper; + @Autowired + public AccountStudentServiceImpl(AccountMapper accountMapper, StudentMapper studentMapper) { + this.accountMapper = accountMapper; + this.studentMapper = studentMapper; + } + @Override + @Transactional + public void addStudentAccount(Student student) { + LocalDateTime now = LocalDateTime.now(); + // 在数据库中创建Account + Account account = new Account(); + account.setAccount(student.getId());// 学号 + account.setPassword("12346"); // 默认密码 + account.setRole(1); // 默认角色 + account.setCreateBy(1); + account.setCreateTime(now); + accountMapper.insertAccount(account); + // 在数据库中创建Student + student.setCreateBy(1); + student.setCreateTime(now); + studentMapper.insertStudent(student); + } + + @Override + @Transactional + public void deleteStudentAccount(String account) { + // 在数据库中删除student + studentMapper.deleteById(account); + // 在数据库中删除account + accountMapper.deleteByAccount(account); + } +} diff --git a/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/StudentServiceImpl.java b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/StudentServiceImpl.java new file mode 100644 index 0000000..ef92c7f --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/java/edu/zrh/service/impl/StudentServiceImpl.java @@ -0,0 +1,43 @@ +package edu.zrh.service.impl; + +import edu.zrh.mapper.StudentMapper; +import edu.zrh.pojo.Student; +import edu.zrh.service.StudentService; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.stereotype.Service; + +import java.time.LocalDateTime; +import java.util.List; +@Service +public class StudentServiceImpl implements StudentService { + private final StudentMapper studentMapper; + @Autowired + public StudentServiceImpl(StudentMapper studentMapper) { + this.studentMapper = studentMapper; + } + + @Override + public List getAllStudents() { + return studentMapper.getAll(); + } + @Override + public void insertStudent(Student student) { + // 添加学生之前,需要先创建账号 + studentMapper.insertStudent(student); + } + + + @Override + public Student getStudentById(String id) { + Student student = studentMapper.getById(id); + return student; + } + + @Override + public void updateStudent(Student student) { + student.setUpdateBy(1); + student.setUpdateTime(LocalDateTime.now()); + studentMapper.update(student); + } + +} diff --git a/SimpleStudentManagementSystem/src/main/resources/application.properties b/SimpleStudentManagementSystem/src/main/resources/application.properties new file mode 100644 index 0000000..932c2e4 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/application.properties @@ -0,0 +1,25 @@ +spring.application.name=SimpleStudentManagementSystem +spring.devtools.restart.enabled=true +spring.devtools.restart.additional-paths=src/main/java +spring.jackson.time-zone=Asia/Shanghai +spring.devtools.restart.exclude=static/** + +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.url=jdbc:mysql://10.33.66.120:3306/mb202201080137 +spring.datasource.username=mb202201080137 +spring.datasource.password=KQGTTX732721 +mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl +mybatis.configuration.map-underscore-to-camel-case=true + +mybatis.mapper-locations=classpath*:mapper/*.xml +mybatis.type-aliases-package=edu.zrh.pojo + +spring.transaction.annotation-proxy-target-class=true + + +server.port=8080 +server.servlet.context-path=/ +spring.thymeleaf.cache=false +spring.thymeleaf.prefix=classpath:/templates/ +spring.thymeleaf.suffix=.html +spring.mvc.hiddenmethod.filter.enabled=true \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/mapper/AccountMapper.xml b/SimpleStudentManagementSystem/src/main/resources/mapper/AccountMapper.xml new file mode 100644 index 0000000..06b79d3 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/mapper/AccountMapper.xml @@ -0,0 +1,37 @@ + + + + + + + + delete from account where account = #{account} + + + + insert into account(id, account, password, role, create_by) + values(#{id}, #{account}, #{password}, #{role}, #{createBy}) + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/mapper/ScoreMapper.xml b/SimpleStudentManagementSystem/src/main/resources/mapper/ScoreMapper.xml new file mode 100644 index 0000000..90af5d2 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/mapper/ScoreMapper.xml @@ -0,0 +1,78 @@ + + + + + + insert into score(id, student_id, course_id, score, create_by, create_time) + values(#{id}, #{studentId}, #{courseId}, #{score}, #{createBy}, #{createTime}) + + + + + update grade + + grade = #{grade}, + update_time = #{updateTime} + + where no = #{no} + + + + + delete from score where id = #{id} + + + + delete from score where id in + + #{id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/mapper/StudentMapper.xml b/SimpleStudentManagementSystem/src/main/resources/mapper/StudentMapper.xml new file mode 100644 index 0000000..3fb791e --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/mapper/StudentMapper.xml @@ -0,0 +1,122 @@ + + + + + + select id, name, gender, birthday + from student + + + + + + + + + + + + + + + + + + insert into student(id, name, gender, birthday, create_by, create_time) + values(#{id}, #{name}, #{gender}, #{birthday}, #{createBy}, #{createTime}) + + + + + + update student + + name = #{name}, + gender = #{gender}, + birthday = #{birthday}, + update_by = #{updateBy}, + update_time = #{updateTime} + + where id = #{id} + + + + + + + + + + delete from student where id in + + #{id} + + + + + delete from student where id = #{id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/mapper/StudentScoreMapper.xml b/SimpleStudentManagementSystem/src/main/resources/mapper/StudentScoreMapper.xml new file mode 100644 index 0000000..eeae419 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/mapper/StudentScoreMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/templates/addstudent.html b/SimpleStudentManagementSystem/src/main/resources/templates/addstudent.html new file mode 100644 index 0000000..8248c34 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/templates/addstudent.html @@ -0,0 +1,16 @@ + + + +

教务系统

+

学生管理——添加

+ 查询 + 添加 +
+

学号:

+

姓名:

+

性别:

+

出生日期:

+ +
+ + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/templates/index.html b/SimpleStudentManagementSystem/src/main/resources/templates/index.html new file mode 100644 index 0000000..7e8b7a7 --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/templates/index.html @@ -0,0 +1,15 @@ + + + + + 教务系统 + + +

教务系统

+ + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/templates/login.html b/SimpleStudentManagementSystem/src/main/resources/templates/login.html new file mode 100644 index 0000000..597be6d --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/templates/login.html @@ -0,0 +1,17 @@ + + + + + Title + + +

+

登陆

+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/templates/student.html b/SimpleStudentManagementSystem/src/main/resources/templates/student.html new file mode 100644 index 0000000..e9dee0c --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/templates/student.html @@ -0,0 +1,31 @@ + + + +

教务系统

+

学生管理

+ 查询 + 添加 + + + + + + + + + + + + + + + + + +
id姓名性别出生日期删除操作更新操作
+ 删除 + + 更新 +
+ + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/main/resources/templates/updatestudent.html b/SimpleStudentManagementSystem/src/main/resources/templates/updatestudent.html new file mode 100644 index 0000000..75b3c6c --- /dev/null +++ b/SimpleStudentManagementSystem/src/main/resources/templates/updatestudent.html @@ -0,0 +1,16 @@ + + + +

教务系统

+

学生管理——更新

+ 查询 + 添加 +
+

学号:

+

姓名:

+

性别:

+

出生日期:

+ +
+ + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/src/test/java/edu/zrh/ApplicationTests.java b/SimpleStudentManagementSystem/src/test/java/edu/zrh/ApplicationTests.java new file mode 100644 index 0000000..316dde7 --- /dev/null +++ b/SimpleStudentManagementSystem/src/test/java/edu/zrh/ApplicationTests.java @@ -0,0 +1,201 @@ +package edu.zrh; + +import edu.zrh.mapper.AccountMapper; +import edu.zrh.mapper.ScoreMapper; +import edu.zrh.mapper.StudentScoreMapper; +import edu.zrh.mapper.StudentMapper; +import edu.zrh.pojo.*; +import org.junit.jupiter.api.Test; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.boot.test.context.SpringBootTest; + +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.util.Arrays; +import java.util.List; + + +@SpringBootTest +class ApplicationTests { + @Autowired + private StudentMapper studentMapper; + @Autowired + private ScoreMapper scoreMapper; + @Autowired + private StudentScoreMapper studentScoreMapper; + @Autowired + private AccountMapper accountMapper; + + @Test + public void testGetAll(){ + // 查询所有学生信息 + List stuList = studentMapper.getAll(); + for (Student student : stuList) { + // 显示性别为“男”或“女” + String gender = student.getGender() == 1 ? "男" : "女"; + System.out.println("学生ID: " + student.getId() + ", 姓名: " + student.getName() + ", 性别: " + gender); + } + } + @Test + public void testGetAllCourses() { + // 查询所有课程名 + List courseNames = scoreMapper.getAll(); + for (Score courseName : courseNames) { + System.out.println("课程名: " + courseName); + } + } + @Test + public void testaddAllStudents() { + Score score=new Score(); + score.setId(111); + score.setStudentId("1"); + score.setCourseId("1"); + score.setScore(1); + score.setCreateTime(LocalDateTime.now()); + // 添加成绩 + score.setStudentId("12138"); + score.setCourseId("101"); + scoreMapper.insert(score); + } + @Test + public void testDeleteScoreById(){ + // 删除一条成绩 + scoreMapper.deleteById(28); + } + + + @Test + public void testDeleteByIds(){ + // 删除多条成绩 + List ids = Arrays.asList(29,30,31); + scoreMapper.deleteByIds(ids); + } + @Test + public void testStudentGrade2(){ + //查询学生成绩 + StudentScore studentScore = studentScoreMapper.getByNo("12138"); + System.out.println("学生:" + studentScore.getStudent().getName()); + for (Score score : studentScore.getScores()){ + System.out.println("课程:" + score.getCourse().getName() + ",成绩:" + score.getScore()); + } + } + @Test + public void testGetById(){ + // 根据 id 查学生 + Student stu = studentMapper.getById("12138"); + System.out.println(stu); + } + + @Test + public void testGetByCondition(){ + // 学生条件查询 + List stuList = studentMapper.getByCondition(null, null); + System.out.println(stuList); + } + + @Test + public void testInsertAccount(){ + // 新增账号 + Account account = new Account(); + account.setAccount("12143"); + 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("12143"); + student.setName("陆展博"); + student.setGender(1); + student.setBirthday(LocalDate.of(2002,10,14)); + 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("102"); + score.setScore(90); + score.setCreateBy(1); + LocalDateTime now = LocalDateTime.now(); + score.setCreateTime(now); + scoreMapper.insert(score); + System.out.println(score.getId()); + } + + @Test + public void testUpdateStudent(){ + Student student = new Student(); + student.setId("12141"); + student.setName("张益达"); + student.setUpdateBy(1); + LocalDateTime now = LocalDateTime.now(); + student.setUpdateTime(now); + studentMapper.update(student); + } + + + + + @Test + public void testAccountWithDetails(){ + // 一对一 + List accounts = accountMapper.getAccountWithDetails(); + System.out.println(accounts); + } + + @Test + public void testStudentWithGender(){ + List students = studentMapper.getAllWithGender(); + System.out.println(students); + } + + @Test + public void testScoreWithName(){ + List scores = scoreMapper.getAll(); + System.out.println(scores); + } + @Test + public void testStudentGrade(){ + Student student = studentMapper.getStudentScoresById("12138"); + System.out.println("学生:" + student.getName()); + for (Score score : student.getScores()){ + System.out.println("课程:" + score.getCourse().getName() + ",成绩:" + score.getScore()); + System.out.println(score); + } + } + + + /*@Test + public void testGradeUpdate(){ + Score score = new Score(); + score.setStudentID("12142"); + score.setCourseID("101"); + score.setGrade(90); + score.setUpdateTime(LocalDateTime.now()); + gradeMapper.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); + } + + */ + +} diff --git a/SimpleStudentManagementSystem/target/classes/application.properties b/SimpleStudentManagementSystem/target/classes/application.properties new file mode 100644 index 0000000..932c2e4 --- /dev/null +++ b/SimpleStudentManagementSystem/target/classes/application.properties @@ -0,0 +1,25 @@ +spring.application.name=SimpleStudentManagementSystem +spring.devtools.restart.enabled=true +spring.devtools.restart.additional-paths=src/main/java +spring.jackson.time-zone=Asia/Shanghai +spring.devtools.restart.exclude=static/** + +spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver +spring.datasource.url=jdbc:mysql://10.33.66.120:3306/mb202201080137 +spring.datasource.username=mb202201080137 +spring.datasource.password=KQGTTX732721 +mybatis.configuration.log-impl=org.apache.ibatis.logging.stdout.StdOutImpl +mybatis.configuration.map-underscore-to-camel-case=true + +mybatis.mapper-locations=classpath*:mapper/*.xml +mybatis.type-aliases-package=edu.zrh.pojo + +spring.transaction.annotation-proxy-target-class=true + + +server.port=8080 +server.servlet.context-path=/ +spring.thymeleaf.cache=false +spring.thymeleaf.prefix=classpath:/templates/ +spring.thymeleaf.suffix=.html +spring.mvc.hiddenmethod.filter.enabled=true \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/Application.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/Application.class new file mode 100644 index 0000000000000000000000000000000000000000..27127941d88c3b146e9eda45e9e1226ffc30158f GIT binary patch literal 785 zcmZuvO>fgc5Ph2_aT-D!5?Ux|4Lj7o(i4tx6zf19Yg!M z(#oAN?2Jwp0Xhsrxh(isyW%g`>r}e)UV7x@x(A3y)U#=nOvw``31E$t|Xso&uV!o z85e~!L{LeL-0=U3o}$u#mKm1-*_VhA^Uc$7@xKK>7wfgO^H^v~Ze5GCpdt5&mBGP-?vU*LOTYlb(svgJ1mcTNOE91_ z2*y9K`*B_?;@Q_Ck8U^$Ne0(hy) AjQ{`u literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/controller/AccountStudentController.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/controller/AccountStudentController.class new file mode 100644 index 0000000000000000000000000000000000000000..055f33e295d38691ac030df8a125c9e6c3010a48 GIT binary patch literal 1806 zcma)7+j0{}5IrMb776)+k)0T9a|r}XB1{r&a4ZLKL6JPj!G%+LNS;R8!5*{PQO(ZU zWhnj$QX#42As>*BN~K4;UU`iQtg79eOZPe5XL?%y{`dDk0KUg&2?dOJ7%gKA;|$aL z;y~~~guDD%dtY`e!}x{@m3_c4vRrKyaSlZfr83T=%uttp%wL&3-qE2oItZlUo1Ko1 zL%U;RUxxN^w!ttfa$7sn9H@?DxYay{iISyL7^z|7JSH*aVY-Y9m|?hiCNG8y!uQi? z(%2a0mov_u-q$?cZ&X|7P+^!c(pQGkU*}PhM^wZdKJ)N-8S}W56Kdxuva(D1=$Pc1 zZT2Npnr|EBWH3^68zn4Y(Zf<1S8$c#;t(4Kujf31kU*9bl>R{wgbH^lG?)MNGQMyK z6<-F@%F}t(26=s4%W8{Z^s)9y{;8%43NxP^0ZDB;00yYFO|D5VWb!AIMitsnXP+MV@4ry<#sm(5roD#b)oXep$ zFL_&vFyb#n$7*xLMdrXaW2+D8q=bSG-h93udZW4$rVU)ZkFId0U14$pp7`WVb}G=PG~*4nz>UBjf2+%3@0E;dK5_ zh7{6J?oZ^N(z((YbcnPt8CHfu4ol|;c_N!DJSpOQF8p;mf5UJ+UnyA;nc266 z-8-&oQnR$9W7CmOm8<#1ymW)Ub;l)4t!^j_-FzdpJ?cq5@Mz!~waEfCSklWiN*ayO zcnmk_dy{5QY1i$SYJY;&>hIybqger8(tDC@+zJg@ehgsp;Cz-!2f{$34}Q7b=^>m;bCXz-nsXlb3bN&{qyHv09?oQ8RXy; zkuRfwDS?GYYF|lT1wDDE`$)T1VCtF)jQvEwsW&>)C}FyYnKEWk7C5E7M1B$NN;eE_ z6#Bl7WIODc;KoQ6s3_MBlfdriXy3S6;6(eCTb!xn=HDz@B~%0o)>vPcupm(W{p+W{ zef90j?_a!p@y#r%I9kMF8A~`Ouo6Z+8TTU-^d3fPPalNQW0@Ga6?)pItMa@}Ya`Q5 zETM1K+pja+p*rZb4r#KSTaEUlprltLJwMHJ7RT{+5i4c9gH?gm$%zS+_LXlul~Or3 znaYq{<9-Pzh-Ly$e=cyk{$I6gbOiD@n7qJz+XVX4WUs5Ed#dYGQ*DQ?@;fRrsXSEX z?XHOh&Ws}edox>{kS%R@LvLH9#kM-4=ki^4*X-$zi4DVU20>_*HDSQBt7A*q)hdYP zL*?2qdLq@xL2f2CJTQ^=h%`N@@V4ra_@(;TIIsH5j{T#pEZSZ+1FMsL1vbVS9O$m> zvhIiZ-PU$X_511AFg}}^kerabC33)4p!2`lIu>wpHl>8OC1BChHjc@*)K_uL>Gwz` z(sAPR?uz>Yb30bKkI8!2?#pAb$0fTR#)q<<*$I=#)wfJKNQ-aW@(U>;f#%rQF~>xQ z_DNsM*Y83LC;67-_zE$f^flqm;l4n_hJaTf1UqTe7YFB?`qn<7Yqe}OeLM^Mhdxzeo8Rp+1Mh=b3nZ#|<` z2A95)z){9nJOou4K~=Dh^NcuzTBmUeb%d%5{Nw}VVqA>zK7|@C4N<@3zd*Cv+7Bo; z*PmnA!Ik_{{wb!a?>@`$ok6-)CQ3WZVVT7`&X;dxz+)rxAMvQ+18fi@wY|(;%DOh- w=FoQ*SMVVtU8R;)_ybEB<2i?JpaW={F|RPlM;UXG($3*yp5)LPmGBzy7sk1kM*si- literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/controller/StudentController.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/controller/StudentController.class new file mode 100644 index 0000000000000000000000000000000000000000..6e0fcd548019a56cfc610e6905fd1f0f3eebb267 GIT binary patch literal 2592 zcma)8X?NR16uo07@ev*ZJENhx?OIo4dLqC z6x-1bL(%c~8r(iI+MHpj9y&VyR_GO2)UqftWCFJ=CK&RXt_SOJlyE+SDFxG*VOTgj z7NzfSvDNJcz#N8Bxl;EEb%oJY>xLsJ;RS|lkiZ$od$^dvyn^?!z%Xyw9o6aEhS_;( zYdwB!**~hTq3&8b?=mO^ZA%E-Xt{!lyI=N$dn`6++w9bac6?rImHJshYqG{A1(&ew z;}5{!J9(@#R1-2(B1-$#p%wC3%i#(>$l$7iYbeM1+cl8BlO#rTO$suME3C7b#fJ<9x36o04|VXmf*ZIQodg9k z%$1WXsZgNX)H|E&hE2-6tA^cTxIFNAi=Zk^hLLUR7sI)_Ve&n<*W&gwt<|NSQr&86 z-KJ(6avf}rhy#PPay3G8md0yD?JgGwmcFk^g$Qnw@7z<@6h@CX4acCsTc&9VO&FF* zXLl0&-{P9-s4um)u& z_9cFO@4?72%*6Y4(hqwV=rFR~h?*E1j!mjI7gk9 znPhBKU2J3|#p=(7{tLr$Tvn0dV*0wB$Y)aX_cd`4YM%(9%O$)}V`L?kb?e=;Sk92f zifXL5w~a#*T<_A2u3G|}Z&p6dl7#B2u~nZEgutjymwD(Y2eU z?;=1glOH;I8>9D8e2g^i&}xTH<$1pPH&}J$Ph@_hRSKWbZ;@<(35;M8Ir6_ts~O)K zHEhs|{Jf})KES{zqXn=@e=^Bu^kn!PTjU~Btn%S5GmQ#&aKW zdWe-Js{9hBuz6@&{!X2C0>&QE!JDP-lJg#(5cQHd zhr*B0b5UYjImKcMd%xrI+Fz)wmI`YDMs+|#$uqx3?I=^u zZMS5S~pBT%iYe5e}Aw?nJeNBdRLz;xmM$kv|-~;$j;_Su} zsXZ)wGvCkb%-8qFCji{S)CG&dH6~5)E;qrJR~5=2ic5)WgIzdc;AQ-k2RSd&;PEBH zSTS%!QKKX<^~0UJDzmcn&S%f$TBF*O$rG1+iwb4Uz^-*Nxtl8CiohVjoVfe9Rl;E6 zhuxr6p)f^hk}N^&u#-~K_*dH~kq4oul@aztLR>!*X~9*aC;9uj#eo@1V|G$hcX`fW zFXyyWR5mik2a(eUyg$dh(d#)381(4+05;v$28U`_R}79ppS%CR jHGpBKIx(tKI0I{EJSV?L&w>jI7{Qp-ZGB1T$}p23NE3F$ literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/mapper/StudentMapper.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/mapper/StudentMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..a2a9d26640d41df6a2bc9072b44cc4df918e9a03 GIT binary patch literal 841 zcmbVKO;5r=5S=a33W@@PieG2&V6P@s6D84*fRZ%PbET8Aq->k*)+vt(X$1`G-`h5#iRu_EY%4MG~M6E5X&neYZ|(td^Ziaaunswn!pjQ8XSKEwZ+wg literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/mapper/StudentScoreMapper.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/mapper/StudentScoreMapper.class new file mode 100644 index 0000000000000000000000000000000000000000..02cd2316a2b9acbeb0c3183785e3404dce8fe337 GIT binary patch literal 235 zcmZXPJqp4=6olu+pJ;6CtnIXM4-jlDtl|&s3D)c*CYWqkH-a9`!UK3HaTP?wW?<&Q zH}md~>kYshgAf5>%(@X5yBDRZYqmnVMsww4YAmnbQHVBSSg4Z{2UTTavnx1tgfL^b zIIj&sOp@aT9dx}9z3UKquMmB&0iq|x;6I@N literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Account.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Account.class new file mode 100644 index 0000000000000000000000000000000000000000..d97651faa1d658f60ccbc50320ff93356ced8da8 GIT binary patch literal 3993 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 YPn80-Gs9K-T*n5j@?=%1`L|&F2T@~%nE(I) literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Course.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Course.class new file mode 100644 index 0000000000000000000000000000000000000000..e6144f0c237ddc86e2738e4e9f94521c09ff4448 GIT binary patch literal 2379 zcma)7U2_yg6g|B=vol#HAp{awh!G@cK3P;m*d-{$kSr!4CWuw~;$*igJ7hBxXJ)Cw zUt;+K^(ig1qH~2Gr6!G-*Y%-f{iIvUv?c29c-*fKm-ar0%_6vYHd|E^f zc?*UE69s{jve7Po9X89m!GoZD%Z=oMAA9j5fx>mq_u?A@`H9KD%sndv?9uFK|?oqO;z?t%Aju{zEVFxb3Fz2eBJ_%vDvX73^#V z+vP>+%g~KwgIml<%RSPI!{mKRydvXf&{%UrDj3Uc9drH|K@dlA=SdX!HQ;KL}*M66kHbgM31*LO>-!VQTs(SiQN8 z=m=k*OuvccLp5j@`l`#X-5jORG^7|v|Tc#2XdVyt2^WUNvsnJT96 z97B)MUouODPLT10XXP^`GZUqkbPjv^G;sy*lfW=GaFzX#;}iZ7uFW+@wE`^SoBKXc>uU zcVN7v!=PwFP$&rTl0p0PoN^4q>;!aTjBXdh4m8_5%cNOf<)~hP0YzAmdxkfGgO^W> ltDl2`lu5RI^K1oGjs@K2XcKXf|0}r5S&`Nn)^QJ|e*s^Qy7&M9 literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Gender.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Gender.class new file mode 100644 index 0000000000000000000000000000000000000000..283e84ce8f59572844d72175dc688f8e4e21a9a2 GIT binary patch literal 2379 zcma)7U2_yg6g|B=vol#HAp{awh!G@cK3P;m*d-{$kSr!4CWuw~;$*igJ7hBxXJ)Cw zUt;+K^(ig1qH~2Gr6!G-*Y%-f{iIvUv?c29c-*fKm-ar0%_6vYHd|E^f zc?*UE69s{jve7Po9X89m!GoZD%Z=oMAA9j5fx>mq_u?A@`H9KcLd1_cb?-H`%AnXrvG^!%-Akx@eq zj^l)YU3dM3ui9=)V0a=EdUx}ItjE>K&sFePI(Jsvo`+@oYwfivrE)_X_R{D)rTaobJb4`Mg=n5(K%E7;i# zw#zKB4Bc2ZxW$aL+#|g>Ox~x&D>7~djWsu zvExAJBT(E3+F@PZ_LQtgbbnt|jYD#`f*_9K(B0K6qoV~Z6;Z<-3m>bxFAI$C_n7BD z47O!i1M60}?bhQU=FJ&Ccblp zGOiS2-fguuyjWIktO}gav?sjAoR~SQB$^ZKX{YA173N!R6v@cKCju7^vF$~|!iK=u ze}}R(nlaAtF6MZXa{S|qlURH{IQD@pfdc(goRv8f9L=epA$~~0rukjaPR!7DQhOE` zIV-2DmpJl*;?yCaA7OpZ#T@p5tXBf@(dYrxe-OxiCD7Y=2l<3rg@8(e!qoInuzGVF z(Gk$x6mKP#z`NXMvU90eH{r{8uNQp(|AkjI*n?M-Zg{@1Dg0l|%wiVJ>8bBv8c(Kw zgZ(Yc{FCWlVXw?gJ;kwPN@I9+hF=w9_IDg98P9R-F`U_w@f4*_#8|~-$XKONGF43B zIffpizhssQogm{0&&p>?W+qB6=^Xa-Y2pgrCxKyX;41qe$0z(FT%%8EeghR+1{PV& zDlHQ$ID_l73jE~+e;N8L`)>?buwP)r!fAeN@dBr`*|#Uml>@>U>PIaV<{FPzWi^!| zD(h^c>8y2C&AqHm=Blzzt9tbSI^P>yAdI>Xe{wWARtBrrjk!eJ(ZOny(%OU5k73O| z#T#EL|5(LP3ne36v6bLl8tpCQWsRDqlxI3O@BvdY*-szR%Atr$xJiE==XtGe(J~Uz z?!b6She6SVpimIvC4=_oIpr9J*$L>x7~L+09cZ?BmPxa|%2B-n1B$RB_Y7|W2QQx% lS3d^>DU)pb=Gh9W91FP3(I(;||5tFAvm&iEtm7U^{{myax`+S( literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Score.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/Score.class new file mode 100644 index 0000000000000000000000000000000000000000..88cf718fb007242bc01fa1a7d45fe31a076ee207 GIT binary patch literal 5023 zcmbVQ+jARN8UGzyt6j+}S$1M4i_?o!7ko<<2oSo84Yiw#!A?UQ5@@+}Ep2VZ@~$hb z11Wb3EqBTj3=cf;KxUZCa2cA;beIl(DKk9t1W)`Gyb#LooIR3O@)CQPv9#ZQ-|zdK zJ>U7A@2vdS|GfDYfCapk#{dRRWNaA73LNumd*zp!TjkyGW>{YGTK@SUsz(#L73k=k20!LPFdbhlC!wWXcD?#LM`pt?=F4`DI zNg&sX_G*3*tq?n!z^+Hlda$XWqc)C6s8tR3nk|2&CiBN^jLVUYmK;oaj@xkX9)Wzd z>3flXt-ix&aAL}cH|5o^>NTF$A;o;c#zS~mz|;>RFuvM5llb8j_)!~^ILSK1k0CJD zi(OVvSIP5HrffWp_sS>sg7Yu#c@2W66O(&pQ*%-<8%3Pq?V+7zl{$_N{f_gF{JZ@Ha>(83)s@xE&9=(;dI$0 z{v$S?l=vay=@xIW$S1&%W*wc;{k*~Zg2 zPmOe*fcorD=#+gP7j0a^3a7p0wYHYS8rPp%T^Xg&KVf4PYfRtqw*BQWsCv|^UA4O6Q>sY^<6OzbvNL!4tG5T1*z(8Cs2$LUB_??NK~byAqkhA9EjVs zXBa+JVi2xUatMOgBd@x>=Iv@F8CR~ZtZ^p_?yhXpZ|yZA?kzRd?3A8Zek#$*b5q@? z9hypZWUCEh=`@I?i^5n7T)=hCyXs%4OIhcY2%eD5j^bJh!>AQCz1>)4t>G+Q&g0wo zj)_;~{(e$L?j|7fSE@}^x>6_EQwIXjD< zz<1FLVutIx5^x(YH@sHMZ<+X^z~lQWl~w=~KNfiS!B9#ft`^Tni*FNv$#1?F&>E1Z zyt?uTS680e>dLcPU3mbjE6-M5kAOQ1S>|2lU72@+S7Y`Kh~F#NGyKjfr->`H?HGVh z;wtafb@UpqLLRI8i2exkcMJ}oOO!v5i05VsQK6q`=s+SKs3}Av{Y3VGL_FS8h>rFX z6%HigQJz9{te>cOAQ8{@6rzcKqSApxJn~bB9_c3=^s?!6=pWig|2(`j`bQ2+ zFMC;sesUi@-{52VflCzK2wT^(fDZfU&l@;txX z%&EU%$jQ8ekvp(YIhlKyYa>p(1|g^2tYb(__8pAgLBTPcYyxz~H3>T7T8=3}mIj%Q zl>nV}a|E4r^G;5J@*0$L@(GaZ4iV(KwlgF_wg%BkfEL{XL5ptDDM(OJg9=VD0a|j0 z30iVX&aecPG-%i{4XH9&(BvT)7c_2yM!TRaQH_t@k#en%UC7^Cq~TdT z@CRP=Bz?P7IhR>bf;~~HY*DUOY3>fpQ}=M;dFemxW@Nz0=!hjn9EZ-hh6+)?D#>z; zcId2|RiSJrL{-OGu4}3g1+BBpc4*PHRLJUtDDyaL$<3({6|S>#Ds&=UYA?i-)0G*- zTZpj7$`};FEn0H&Z{Ulp)*v3kFYzT>87$&u+@@u)nQ!4GT3P0;;mfp4{Di;Kze3Bx zZ*UA>rInK+5t}H!OGn0pB?N^5A>Jiz_kKV+#$dDoZA_-urD53wtc&dTYOvW0?&4Dd zI>p+T(#=Yb=|uhmDV`wl$v-vUjQsyndRV9D|3|z#`hyT8={pj?)_FNw<>JWq&XZEc z{G8$EtduT4EEWL@31O0C$$(PcTS}e(fcMxA!8}A$VCa)Gp`4&IlWq$z$B=7_L Ih_Z103w2w-gkX z9oO+sDag;xT`j^uQAf$d7)%9+hP*cXe#>@!1v#gsU~=ucb*uLd-dctF9%IAYI1CNiHn8C+6kKUHowF#Y&XUU6t`_(jwH}? z33wD=33Hg&v0&nuV4oPIP7-ojwivA^XdgFG$EOr%q-`?OhlVJ_Tnpe6CO$2II)N9N zZqfD`6Q9NB6pXR$bezb;5k)GM!sAI34J>g|aTIYjgvNf2OQt^z zK9S+kmMG^ElnOXA9ElvvIk|!%KjYkRwq48bcRBmVQXb30v_U$SPBEvdjCOp@aqWx! z-A%iD#oFwUVKR{ORjccW=de-r+YTe1PO-^tN45tq_ql0z?WTLv={fX!+I2nO@*QSN zPd`8DcW6blonlPM^@xR=c@Ij+=lcXhCg?e`dGL9w%593btyI9?s7<-E<$+B z4y|YlOea??S`EQ4M$kZ$M?zR?g@U1CwpfZpXDLyj#n_Po4~C?P#Ux^SINP`OqKwa_ z;UAJ6F^u937rn3)aG!d9TNJi2v3#}du*{i3Yy7AOouY6WvO}1~pixvx1tr-mAId?; zpb%DM=b&LSF;<+TgUKP|RynPx>V?ya9?KiPwY9Tu?S&H5E?sV}pJlL3mL!(Reuwp5 zkE6)f#I&`VoMo{#m{29e#KY>fXbi*mq>LEkhS%?I+2g%-U`8~gD z?Mb2a#tZm<2`}LXI$joK;uQt8LE&`Vo8FEc9zC*hoU^ukugi1e^`rtrpd`Iuxvh@f ztF3w7PJeIdBMZrp;}wb~1O9x1AvzlpO(Dgq)#+?FJh}}0P{Fw{?pdd`q8xij&V+D_nd^9Y0kt^U+W)zswOHX0gw) zR2TTow*p!@al{9Ap6tP$2X}DinH=1C(n7(7z;5CIZN7!j?+a|H^GV@doBtz}KLn63 z^1Bc;8d#%kN&wbzkx$Qry_a}b#L+lH^fvV0vonVQQE6Wy9-SFP`TP+JcH;+nrLEQBA)Qbr&jH498D7)$RLu7|E1LGUB*U8*x(EU zS0w#I^si4^^pv+2wCOD}XC(~pnPU&XUov!A$Mda+$% z`pFUcui&d$^oQ=3UhKk{etLxdIXs_5f8>7Y#paIb9~hy30bhd}Xk{(Av_}PfKCv_9 z79U+&Su?&)wA}s$zOOe21I}+$ zUtp{so4<>Pf=3#)i^urYP#6D(v8wtW4%~*hSXJ+0HbN{mG(r{|g{menh4(Od8|A82 zEhIq48#+P98%9+ZAR`3nRU-j9(I^shqEV_A1*jB)iq%pAbh0r<(8-2b9TOlk1kp-> zmK$Y)mK&97S%4}bs9dc?AoWgWx?h)hiFeXHT!Y2rPT@b;WR=aKhJRvV;ZJyqUKW@2 zUp!29X_fJBYRRQlfyeo-VM;gdp`ychAJaPK_%W3CaYUNM|I3W3!?lz`Rq@L%+yGB9 zbWwaXp%9U=PjHCqZ3PQ zO3j#9xD9>rE}pt3+7}zD=%}h;k0AsoyN)-spo`iIoQ$d#b)9Gwg04c`MMX-llMOxS zq8LLjJ?dI+7(tg2cTuABI+`t*7i0us_<8&md$_^yHT;GPe}fU0@FsdpNuF7K6+SJM zzX;pt)6!VU)^U?ofjv*)TeNiig7xX!v<$K6$|Ep8V1uf|P!ujS6y*bw4W4tNVG3FV zh%oAKQwS?0U;|{jH3aL!-~m3PBXluFTn1j*eW4@&Pmuu~6ZJ3f-;v zjpYLKD&C=Hgot<@7b4?zg4ao2%kSb0kUpl9FIO|+$|hf~@_3P)IeZ7-<=x;2-{bWv QUgJ}V){pQLZu#o}0BPofFaQ7m literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/StudentScore.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/pojo/StudentScore.class new file mode 100644 index 0000000000000000000000000000000000000000..2a10f778e2c9aba37dc2b1021ee940f64201db96 GIT binary patch literal 2657 zcmai0U2_vv7=BK&o85$MDTS8CRxDDm=?6gtfuyZMEl^BLCAIi*<2K!CmZrNkd%_I< z62~7PH(clp;tUsz-r$VC!Jpx!h|kGxn(a2|G|irm_dMr$p7%Xx^T$8Wo&%W27dfPm zHlSJ1kr5cUZ$Ge$4cpr;-r2nG)TBUW&h=cmAdsFcY-C{~YanOg2rPlTv(+ko+pHJ& z{QG{fDqCBQC#yBT=?EA>*cBMA^a?90tbPkeF~Cg%wJ0EgN}EATx{YGR4P-gTs6h+I zaYDeX+1}DOExREwG#LiQsFn*~s^DP@Cov+B+jeBcNMK~L(3^zP|AvK81)p&gcA!As zv~UV<31k&WL~W25hsdRH+QQp7LvnRHs4x0kluoCX2kGxw3+M2Tz{y>E$655fnl10S zl0jY|ZBJ5eX|gx1EizS+nqjy`Lba$O)?|~b*Tzt**d}&LU zIu&li-`(_giZ>n4Y1-1+;*!ZjUcQ!aE{NqZ{~Esv8!Vj_N7ntVHM?o=I?`!!@2pxI zrSEuDG2PNqi-r%Xez@0BUPy+&hM)owzLJ?dI+UsVvhFkmEM?=w{(p z70pK7zN)lqJ1h2HloEaI?()hKH(h4M^31dvJfvn9%$Vq$B~$ugtq7dx_C&URcKi7 zH|(19n-2xPi=WsiFa*72ds_`Bn5g*vPHV3mGcqdm*vNr}>r7XV@ULR=;Vo8z-Izy4@vK($iO{;Q~w>x zT!!*-n%7T?mq&_!yky%g-jU#;X}1f=vd!C?^HUrtvM2b|r+$I>sU0%S?@W8pzzo|~ z7=T%vXRjE|Uf`2=6GjdJJ%RBfCsXJGW&an5_a)K^Mo-X}1j_XQ3WdF!VD=u~j{r-g zqAbZwP5%s|x5nWxBGRbzEAs>{a-A;N8A!li!UxdWd@FJIJ_VnSDGx0?3?Js?GNVI# zGklX3x*MwLP}h~j#(dXAy8hzE1_A2RQ$Il09#8)U^Lyy&$J4*UT$!1Aiev3A8$+uz z{3>a)zvD<=dx2w*V9n;Wr^t6A#!5Ov#!8vIu3|DTF!%_4c|D)$1Zj_ZO1l+u*mtgu zt0+;(5UMD%Vp5pE$C%@oO78-HHI!)FO&00`TRJa;QGCc&1|JcBoWBpuztL~Ne2HNL zDSk}x5+h+VyPuJ(iHvCK9UmEUmD{U?>&g+uI$nzLgy{RMb#hg#qkNYW=t8}u38PNT zpM2_kmIlgm+I-vGv4L`()|vy;k6_F`#rW51e5|CYiM$rgn96WYjrBJ2Vu%`1O5-xF z;W{blxP(QvQpn)~tyD&y;lW#COKY2U8`>)lXf#a-8U-O-$1{Fm^hZkK7e*Sl+UZ!vZ9YvRe!~AxSt_79fpu)) HbL9U8zN-_P literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/service/AccountService.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/service/AccountService.class new file mode 100644 index 0000000000000000000000000000000000000000..8c1be0a165009f607144a3d2c4f564788f9aeb00 GIT binary patch literal 315 zcmZXPu};H45JYDUi9;ZOL`6eO(r_OTQP89c0?85u-Ev+fXPLX`d^QrFM!^U0QHZsY z2qCJynbXd``TG9&1aOP992wzC%GSKcwP_@F&WgFSHnct!TbbjKa9(l8re?n~4=P5kyONU-uBXf2{~|@_SM&eQ>{)Z}C9OmG$dO+qNo+Ky)w^D$J~!MnZy}b1iSufw z9SY%cy4+)KLKXIm^Vt(2=PfW{T!c1SS-4u$F8=no=@Ewn!hx0tGOabhP<5{AD8r~9 T=-ZBQyt4;{6SbA6-@xe)wrNqT literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/service/AccountStudentService.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/service/AccountStudentService.class new file mode 100644 index 0000000000000000000000000000000000000000..3f07c2c36e584ffd065414f12bff6a1c876d0421 GIT binary patch literal 424 zcmZut%TB{E5F7`ZKzS7j4sb^*7ksDU& zd}IB!WTe^%1cr&NT}s!wB!Sa^leuUtLIHsdP8A3^r~yI*i1;@U*y6IyFJ#FOO^!R* P?diSWG>i5b32^WU!>n~+ literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/service/StudentService.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/service/StudentService.class new file mode 100644 index 0000000000000000000000000000000000000000..b79f748c45232ca06b1b929137a188ece6f8bf5a GIT binary patch literal 449 zcmZvY!AiqG5Qb-B+t_MrZBJf2Hy+#vhzfcTgor}G`sKUfB*UB|NMIY0Dw!F``{s*QtH&3U8ft%3 zgb^kg@pVyj<{DwP2%^U3*c2)4#+$SI#DMYYMq)-i^Du&Nmed5D@mHV}PEt*N1^TTc^F5dKatY;QmQ&Nnmr>(BQe0G{J%3;_f+gc1m2L?F2@52aq0 zR!x6h*;j@uF!Ic_O!tLAFq3z*55mOdP_NnrlEAR(X8w1hGDlY zx75|WqDo*?c9om5*;I}|rr39FbToaZ?tLMSF^p?SCU6NUfw}(~3&d*5?STs9v&F$9 zO0HvCwL;EEYufvEAFB|{HoXVdF)T*&Qs@4cSDJZ_LG(;}UN2hC=OXP+x;xJ4%WS@&yj zo_>M(f&Wmhb7g_hhFw(x<3-a_TkS?gId5g9PED$48?s)Oj_I9y%8#fMl7FCA zl(bsX#p305=+x#DEaG@CzR*6r zZ~6@otycVAOAoIMYglrnalmHoF{bs}pS@bL+m4}LnjX8;=WFGS%8G|BkR3`ui_9t8 zJ#H$!)Sa#ZdnUpe7P!eT<&7l=JIH+)w<+)N^pf`h%2@s@M1JuLv`;(*u)uYUHr^V- zIHE`*%Tu~*jU4hk(XSI#V3GSU=Ye90-v~jLDFs%b)5U}OKpCRUXR4Rn2BpVCyqDay00u;OKSFSPV?-E`5ce~PW0hz= R39B>?;BjYN^XYg3`~_>lNC5x< literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/service/impl/AccountStudentServiceImpl.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/service/impl/AccountStudentServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..1ffb97777659e052abcf892e17b443720f1b55b5 GIT binary patch literal 2078 zcmaJ?Sy$Ue6#hmS6pVo2Vp9SkTS>fN1cYXDmO5mqTeDNQX`8l#H5gGN`A9Mx`mcIU zLzbS?x4!g8_4JN56EJ=7jONbV`+axyKmUIC3&10YBoy?hNNDIqAH&5xe!%r6w;KBD z_MWJF41Etx%k&;I^kj3jeq2Dmill}CXbiK$XzRZ@ySgi!1G6r4bHCNp%k{e5w!BTR zZ3xP= zkzp9~9rMh6p;zrXZ$9Im*rF4;W!Z-e6WLt#oF^p}pE8U_L|gWr9nnl;3_VFqU{b|p z4O6&s`e8_lp|>Htib2;AkRRkt&oQk=N!q!l;W}u5s5rv>hXfJPImiG!!w*Fw)6u#qvZ$#$G+(&9+$GVaQ}Fq4z#c z_`+v3r(qro^q6dK*iDL8<|L))X|5)TENb{%K9)q596=#|dL-p{HQd8}nZigOgnlwK zbv7-fTx|d)JXG;W!(%*Qn2h4ztx(9cX;BS!0ymzGE9+#!$gWJ+qFn9{Ue@&Q zPddJJ3q~pSJiPtL5#q;?Sh5XD<#5%s#7cXATR2;MTP8Q^Vf3=#o<>>27tzyh+NVK@FT{ojTj`G!!=Nwo?}`Oqryqu5}>? z?5u2ahHO__E+s(N-cd{F;Y=>!8Vy(l3@fyzf3g_NAPwD*v_7i+Yy)9ID`qo92_ z{}wD?cmp**^9F;zlSsh^ttljE9i=smeq=C2jlW5ftAQG}@C}{FfDgm`FA1ceM&JDk ziRC5mE&cik`#ahh;l2zR{7p|K#QHmoEdPnIS8p-CQY;+f(lM?UQ=c8id0450LGJQ>vH&<|pJh)DQ%G0Xj z2JT}TW!$8haf^bJ^?l3-#9|-U@jZSZ@(JqpG=3!F8lK}dej-<-x4n!WbUgjp_w*Ms z9>jW`6cm!BLyli6kWLWWuTQca@*_KoB<6_eyw4;PD8@|EgvyCYi2C{zs)B8jD5%F# HH-P^Dwkirv literal 0 HcmV?d00001 diff --git a/SimpleStudentManagementSystem/target/classes/edu/zrh/service/impl/StudentServiceImpl.class b/SimpleStudentManagementSystem/target/classes/edu/zrh/service/impl/StudentServiceImpl.class new file mode 100644 index 0000000000000000000000000000000000000000..1d054619a04cf8629a1c8024f1634f4c26f47e98 GIT binary patch literal 1709 zcmaJ>*>clL5Iv(f5wVp80|{9!By8~lh<$SiBw;f+gu>tl-V}S{Ot2-FG)gLb6;!d_ zhx-A16m@%~k!>o52YWQF?sHBr>Yu;<{SUx>yhy{qkcpIqVT>?L?mByp-E!Qfy}7l^ z>ylw)S-3*3Fbw7LwNV_wsEM?N3@nBv-U#gv{*E1Re^1o8E!v%yU6o;jyRsVF%4A{~ z3u5Dj)9G-Z;Z!9FZAX?QD1KkcU>p-BCM_IAmSO&H&LpwP`YWmiNX zBc$UNPGE{e2$zIPt&d?Q*HzK+cD+PHDPL3kCoRlimcbVYuS~&sY+n(IjxXyZZk~f%361XtUXF;oWWTW=PaDZ1%~5E z5&E?SzBRNvExn1$T1FrN6%~a0by}XuUWXRIx!MPicQ?4QAqMihUoYCVOZ?7Y2dKr zYYeG%uR-!BD#GP2!}b>U-#A+>vSgzKYmP6}T^mz!M+6ML-X+w3nBNk885>;gc#T(% z@3gt(K84S`4qcULO$36lS6$bWjuf6t@9tDQzi9^@H6z<9WZ(1O+gsdm1AE)4OV2;B zoo;}=8cJ_p_`E?(DiGFaRWw~khCZcJNIKJ<@a4e+xI###{^)2d20O)Mnkk-f zL(rgS`-Vu*IW;@(nf7K#SG~}$^Cv=;d0LzMKKjdQ$QW`1D-lo$xhD@g+}0r_EYfl@ zz;J_pS+!tjMGe#QFm7Q8x9RqT-WznL3*W#B#V;^F(apde`X47BU;-&jVwBd#UAj%h z-nfSn-6$?XWmu-?Vfu9FxKFLP6 z?4>ClMn0=#qlKf9*6CEDGYYBr1IG;XRIB|9%#yOXKE;`?;tbZXPHtnF^xTKVB=y>XpFu + + + + + + + delete from account where account = #{account} + + + + insert into account(id, account, password, role, create_by) + values(#{id}, #{account}, #{password}, #{role}, #{createBy}) + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/classes/mapper/ScoreMapper.xml b/SimpleStudentManagementSystem/target/classes/mapper/ScoreMapper.xml new file mode 100644 index 0000000..90af5d2 --- /dev/null +++ b/SimpleStudentManagementSystem/target/classes/mapper/ScoreMapper.xml @@ -0,0 +1,78 @@ + + + + + + insert into score(id, student_id, course_id, score, create_by, create_time) + values(#{id}, #{studentId}, #{courseId}, #{score}, #{createBy}, #{createTime}) + + + + + update grade + + grade = #{grade}, + update_time = #{updateTime} + + where no = #{no} + + + + + delete from score where id = #{id} + + + + delete from score where id in + + #{id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/classes/mapper/StudentMapper.xml b/SimpleStudentManagementSystem/target/classes/mapper/StudentMapper.xml new file mode 100644 index 0000000..3fb791e --- /dev/null +++ b/SimpleStudentManagementSystem/target/classes/mapper/StudentMapper.xml @@ -0,0 +1,122 @@ + + + + + + select id, name, gender, birthday + from student + + + + + + + + + + + + + + + + + + insert into student(id, name, gender, birthday, create_by, create_time) + values(#{id}, #{name}, #{gender}, #{birthday}, #{createBy}, #{createTime}) + + + + + + update student + + name = #{name}, + gender = #{gender}, + birthday = #{birthday}, + update_by = #{updateBy}, + update_time = #{updateTime} + + where id = #{id} + + + + + + + + + + delete from student where id in + + #{id} + + + + + delete from student where id = #{id} + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/classes/mapper/StudentScoreMapper.xml b/SimpleStudentManagementSystem/target/classes/mapper/StudentScoreMapper.xml new file mode 100644 index 0000000..eeae419 --- /dev/null +++ b/SimpleStudentManagementSystem/target/classes/mapper/StudentScoreMapper.xml @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/classes/templates/addstudent.html b/SimpleStudentManagementSystem/target/classes/templates/addstudent.html new file mode 100644 index 0000000..8248c34 --- /dev/null +++ b/SimpleStudentManagementSystem/target/classes/templates/addstudent.html @@ -0,0 +1,16 @@ + + + +

教务系统

+

学生管理——添加

+ 查询 + 添加 +
+

学号:

+

姓名:

+

性别:

+

出生日期:

+ +
+ + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/classes/templates/index.html b/SimpleStudentManagementSystem/target/classes/templates/index.html new file mode 100644 index 0000000..7e8b7a7 --- /dev/null +++ b/SimpleStudentManagementSystem/target/classes/templates/index.html @@ -0,0 +1,15 @@ + + + + + 教务系统 + + +

教务系统

+ + + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/classes/templates/login.html b/SimpleStudentManagementSystem/target/classes/templates/login.html new file mode 100644 index 0000000..597be6d --- /dev/null +++ b/SimpleStudentManagementSystem/target/classes/templates/login.html @@ -0,0 +1,17 @@ + + + + + Title + + +

+

登陆

+ +
+
+
+
+
+ + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/classes/templates/student.html b/SimpleStudentManagementSystem/target/classes/templates/student.html new file mode 100644 index 0000000..e9dee0c --- /dev/null +++ b/SimpleStudentManagementSystem/target/classes/templates/student.html @@ -0,0 +1,31 @@ + + + +

教务系统

+

学生管理

+ 查询 + 添加 + + + + + + + + + + + + + + + + + +
id姓名性别出生日期删除操作更新操作
+ 删除 + + 更新 +
+ + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/classes/templates/updatestudent.html b/SimpleStudentManagementSystem/target/classes/templates/updatestudent.html new file mode 100644 index 0000000..75b3c6c --- /dev/null +++ b/SimpleStudentManagementSystem/target/classes/templates/updatestudent.html @@ -0,0 +1,16 @@ + + + +

教务系统

+

学生管理——更新

+ 查询 + 添加 +
+

学号:

+

姓名:

+

性别:

+

出生日期:

+ +
+ + \ No newline at end of file diff --git a/SimpleStudentManagementSystem/target/test-classes/edu/zrh/ApplicationTests.class b/SimpleStudentManagementSystem/target/test-classes/edu/zrh/ApplicationTests.class new file mode 100644 index 0000000000000000000000000000000000000000..44c5bf67dec8871e714985751d5adf5bbc80193f GIT binary patch literal 7356 zcma)AX<$_46+K_JHw;e*!zK|i8o(rj4he{X2$}@JXb50J6u0`wJia$lb?HDrsjb?@Zq_b#v#o6-+Rg5*)}`mZZQjfT?T<`mzU`iS@44r@@4fi` zt~~&js*}PfL8*o^9p$J{sN8I9HDdinvM;uJ!)CMBQm8m8kxW?26iRFBdd4AyaT>xp z#zR-w-;58%&P{KMwG0mSCwdJlkxF)(87rf(U&b1Wn@MYxF*slu$&@0s&yQULlnxA z_V5(%>_9M^HOy9+;`uh1+MM#j5JnB=>Npg&3ghVAN;4UkuuaW7raftyeP+5jjCw>h z%+qlg4p*3z%bL4F+)P?MM*om$BWw?0KELeUwj+c_ei^;*$#GbSBQz}1aU`1ZGT$|v zvCILkN)6G!sZM|sso0t{&+M|&rZGSSHCUpf8AmCU6K{K*j^$zH!bGyqUbsxh(XvqE z!cJqrjF5XRI$F`DFnz$-Vz#A{B+p3+YZJd^EF&olI=lA8heKWZQ&0~7I7NtUwlXa}eDfDcs5MlL3VSIaV zgUc2sX)R9EaXQXmHZx8(rv-!HEv)Ma;Y}?7wo)Pi2*a#k?J-2mm8MZ&0nNqGIh4X0Up7M zm)I_xr6UbnduW$5^>)v6T^VDWI5b438yXuHG=)GTr492NBxl1q&c%7unnW^VrdbHn z$BuuGEWSX;h2mK_ZuXm&**Yu^UyMsMT&m;a_=HzqwoJ98)5b7iRu~ykEQL9>rv?b; z2(Opeps=mRWjZd$6^v}o4iB2_`j=blu=Oe(SK}HI%hh5#<{oKld^UM>bObrDh}``Y zKCR(89iPEx6%O_Yy3ZX>jkgYWGMlj=f!zA7^Nj|@&o;>nZo>^4Zq#uTZdRD#87o@J zFjGie#_|3UkKegC-SUd*S06+X%42-$(o6rdo{*bgp($v| z!x@0-4HaG58g>?5j4i#rsiCA5#txK*u-mE8g$v~OGdlK&zJ#eG?y?Y`WkEGGE?9WP zB3bfP9nX0Zw8qF}&Q7ISkvs5$j;~3f+R|i8MC-7OpCz5mH+8&-Z?ShV9NS*06!k8y zQD>f2@*R9v!}oN&gzp#kE_sW2xT7cTD0yBWEAB*dU60(c)bSepP^6hx_>W1yH*dLY z^zj=;uf0_!exl>2;-$tw$i*sSKiBaK@o*f+oGv1aU*cC9ey!s*{KmWe^0iQ*B*p8Y zs zO>J-LNTvH?8R<>>Hl~?lGI>jEgJ~o)v5iJA``F=_;ctkw3|XnO6KONv%uci|73bYK zu_KW*JBJ1~nCWhV$MZh0Z`U3posi$|V41ZkL3>rcmKOH(JTYvsxnF5}$r$yyJ!&LS z;jRz~B^_tkbND9)m7J%^66XS}bWX_KU$RR&03YM}sUsnArjV z(%5j{_}m)qm|NgsA!>V*V2+46BOWJ_T)J>~c}C`0x-z-kZZYheNjSs==SF3K>q`^z zIj6{G?!NPsSWMa;y2e(fjkwt;JzapS?7Rwm3`~lvZipN>rQGWJL8|2454NRtyPxv) zPcs~`Eh361gscz8k$i!XlJ&qlN4hS!0ddEiz}beKQukL)6V$~O%}d!u#1MW2**u66 z#i??fdw5O)q}g?X#nYTX3nE$Iu&2UKEhj4j`|T`{W?iINuel;2MLV^y9uJpnDl8gX zAW|tSCMU*vQ+#MV$BK2?64J`?ZVnT0rF_p=X=8AeX>CfyGZQP+@~}Eqtqs z3bS*JNhG(XwwQcg6(w>W*j70Dqi}QZ-gg%|haP7nf+Kkw zyIJwUNmp3*-6-3Kx<|AbtR5C}b4VS}wsrK;`}c0UvwiuJYBjHVbo=$A*IjFWef{F? zqgOo4uOZbz%D?g0p1luT?M#MLC*$vIeCz33xq=UH)14La`>m(1dHss(_U?XAesFJl zGHIsU`q^oi8BKMu_=+MoRzNhx2fJAxzLZMqL=V;MQA+siT*gnne}Pit`KyBeb^b4r zN7JG)J^&PrvB@bIo5cNm0mRY$_$|h#PTqqkuipXnxE!q}@RQU0oUA7Dlg9a3t}2ym zRVu>S5_|Kjgjde7we?Ry8^L}G9nlf)!m4>An4xeB7W2zN3eTdZ^RO)DWKmak7ebNP zc9cgNmXtk#1sqx~!zs*LSnyRL;!6qmda2PAqbhST$&)}#yIdl8?-RZ1P?yZr#;U&gV8bo=-bkUfQN&-C10+bJ&YLYM2=YdO!R*`cc^ znkaG4!+gHrS-@9367p(#Fq?1Ps@1`^FAIHN>eV3yzQ{<8>&pa`_`bY@g9|*E?R#(= zJrH)a?Z(>mJJ8b+txWC2Nm-m4jeIN%!~Tp%%j~hf=uT|TVlW!9?5V9;#Km)_`kWHv zI3unA4J2+O-|Q{mJGq5?t9AsFwTSLDada_1m+---*>-Z81HpAI#L+o)H%D|Q>~nq4 zOSxW{I8lsO&Lp-GoF4=rFF3*1PZMxVfVdMK0|l`-)IWBZxs-j;if2&2zO?c{9^AFQ zta6t9zr6Aw`M(nvb+|r%(lJ?T({qBIo)t{kO1^|SF5p+x^{X1=Rc&6%oRPXBPwRb1 zyLqY*Y#mKr8L>uiEeoDRie_;=OJx@eOA3WQZ_h8cx%s@y;?6AYWp&-Z3lF*sd_@xG zfOl%EgEg@Vv(U*Vdo{c5HRxvTcr0wjG&?O)QR`fnbUuef)x03*YBg+Q{k(%{L7Wfs zom#^vOPr_BDNUSu#CPh8ITASmT}Mnkn2eJG0iEJo52?dh4-*lW$|=0^5rbP z;uh5Ntfy7cd0Bj&q4);N=-WXSAHo6x-?oJiCzDOS;@*gv=p)58v6K>sVY8nd+Hs>2 z;wy#*)yM*=MkSJJ0VO&g<3bHmGGLKoLwxVBHQ>Pt--Bhg zcC*ddhX+Ua9^B_fIj3KdKiS&!7PTo_c?wH5i#`|hUp>%+1nsJpQ%rx$B0xO{{xIR6 zOZevz{`u6e3mEhZQHP6gIN$O$;S%cCr2+VDK73cdxVCD{1T6C52T0;2;2&8q0sqP+ z;6EPf|GJ@mKNxCu4ThFFRy zA{-r2YjV)jiG3_KTohf USJ|Jd)mqMnId`J!Ry~;UKLBmeEdT%j literal 0 HcmV?d00001