diff --git a/.idea/dataSources.xml b/.idea/dataSources.xml index fefc9eb..29275a4 100644 --- a/.idea/dataSources.xml +++ b/.idea/dataSources.xml @@ -6,6 +6,11 @@ true com.mysql.cj.jdbc.Driver jdbc:mysql://localhost:3306 + + + + + $ProjectFileDir$ diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml new file mode 100644 index 0000000..3e0893b --- /dev/null +++ b/.idea/sqldialects.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/entity/Class.java b/grademanagement-MyBatisProject/src/com/ssm/entity/Class.java index daaf89a..f7ca7b0 100644 --- a/grademanagement-MyBatisProject/src/com/ssm/entity/Class.java +++ b/grademanagement-MyBatisProject/src/com/ssm/entity/Class.java @@ -5,6 +5,28 @@ public class Class { private String className; // 班级名称 private String grade; // 年级 private String major; // 专业 + private String teacher; // 班主任 + private Integer studentCount; // 学生人数 + private String description; // 班级描述 + + // 无参构造函数 + public Class() { + } + + // 带部分参数的构造函数(用于添加) + public Class(String className, String grade, String major) { + this.className = className; + this.grade = grade; + this.major = major; + } + + // 带ID的完整构造函数(用于更新) + public Class(Integer classId, String className, String grade, String major) { + this.classId = classId; + this.className = className; + this.grade = grade; + this.major = major; + } public Integer getClassId() { return classId; @@ -38,6 +60,30 @@ public class Class { this.major = major; } + public String getTeacher() { + return teacher; + } + + public void setTeacher(String teacher) { + this.teacher = teacher; + } + + public Integer getStudentCount() { + return studentCount; + } + + public void setStudentCount(Integer studentCount) { + this.studentCount = studentCount; + } + + public String getDescription() { + return description; + } + + public void setDescription(String description) { + this.description = description; + } + @Override public String toString() { @@ -46,6 +92,9 @@ public class Class { ", className='" + className + '\'' + ", grade='" + grade + '\'' + ", major='" + major + '\'' + + ", teacher='" + teacher + '\'' + + ", studentCount=" + studentCount + + ", description='" + description + '\'' + '}'; } diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/ClassMapper.java b/grademanagement-MyBatisProject/src/com/ssm/mapper/ClassMapper.java index 97ab5ec..eca7cb2 100644 --- a/grademanagement-MyBatisProject/src/com/ssm/mapper/ClassMapper.java +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/ClassMapper.java @@ -1,8 +1,15 @@ package com.ssm.mapper; +import com.ssm.entity.Class; + import java.util.List; public interface ClassMapper { Class getClassById(Integer classId); List getAllClasses(); + void addClass(Class classEntity); + void updateClass(Class classEntity); + void deleteClassById(Integer classId); + + Integer countTotlePage(); } diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/ClassMapper.xml b/grademanagement-MyBatisProject/src/com/ssm/mapper/ClassMapper.xml index 0cf4597..e8a8c2a 100644 --- a/grademanagement-MyBatisProject/src/com/ssm/mapper/ClassMapper.xml +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/ClassMapper.xml @@ -3,14 +3,50 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> - SELECT classId, className, grade, major, teacher, studentCount, description FROM class WHERE classId = #{classId} - SELECT classId, className, grade, major, teacher, studentCount, description FROM class ORDER BY classId + + + + INSERT INTO class(className, grade, major) + VALUES(#{className}, #{grade}, #{major}) + + + + + UPDATE class + SET className = #{className}, + grade = #{grade}, + major = #{major} + WHERE classId = #{classId} + + + + + DELETE FROM class WHERE classId = #{classId} + + + + \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/CourseMapper.xml b/grademanagement-MyBatisProject/src/com/ssm/mapper/CourseMapper.xml index 16cee5c..1ea78fd 100644 --- a/grademanagement-MyBatisProject/src/com/ssm/mapper/CourseMapper.xml +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/CourseMapper.xml @@ -3,15 +3,23 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> + + + + + + + + - SELECT courseId, coursename, credit, teacher FROM course WHERE courseId = #{courseId} - SELECT courseId, coursename, credit, teacher FROM course ORDER BY courseId diff --git a/grademanagement-MyBatisProject/src/com/ssm/test/TestMyBatis.java b/grademanagement-MyBatisProject/src/com/ssm/test/TestMyBatis.java index 0b3189c..f699b55 100644 --- a/grademanagement-MyBatisProject/src/com/ssm/test/TestMyBatis.java +++ b/grademanagement-MyBatisProject/src/com/ssm/test/TestMyBatis.java @@ -2,6 +2,7 @@ package com.ssm.test; import com.ssm.entity.Course; import com.ssm.entity.Score; +import com.ssm.mapper.ClassMapper; import com.ssm.mapper.CourseMapper; import com.ssm.mapper.ScoreMapper; import org.apache.ibatis.io.Resources; @@ -22,7 +23,39 @@ public class TestMyBatis { // 使用正确的变量名 sqlSession CourseMapper courseMapper = sqlSession.getMapper(CourseMapper.class); + ClassMapper classMapper = sqlSession.getMapper(ClassMapper.class); + // ========== Class模块测试 ========== + //测试查询所有班级 + System.out.println("\n=== 组长刘思晗:所有班级列表 ==="); + List classes = classMapper.getAllClasses(); + for (com.ssm.entity.Class c : classes) { + System.out.println(c); + } + + // 测试查询单个班级 + System.out.println("\n=== 查询班级ID=1 ==="); + com.ssm.entity.Class cls = classMapper.getClassById(1); + System.out.println(cls); + + // 测试添加班级 + System.out.println("\n=== 添加班级 ==="); + com.ssm.entity.Class newClass = new com.ssm.entity.Class("软件工程", "2024-2025", "软件工程"); + classMapper.addClass(newClass); + System.out.println("添加成功:" + newClass); + + // 测试更新班级 + System.out.println("\n=== 测试更新班级 ==="); + cls = new com.ssm.entity.Class(1, "软件工程", "2024-2025", "软件工程"); + classMapper.updateClass(cls); + System.out.println("更新成功:" + cls); + + // 班级总数 + System.out.println("\n=== 统计班级总数 ==="); + Integer totalCount = classMapper.countTotlePage(); + System.out.println("总记录数:" + totalCount); + + // ========== Course模块测试 ========== // 测试查询单个课程 System.out.println("\n=== 成员吕淼 查询课程ID=1 ==="); Course course = courseMapper.getCourseById(1); @@ -35,6 +68,7 @@ public class TestMyBatis { System.out.println(c); } + // ========== Score模块测试 ========== ScoreMapper scoreMapper = sqlSession.getMapper(ScoreMapper.class); @@ -74,8 +108,8 @@ public class TestMyBatis { // 测试统计总数 System.out.println("\n=== 成绩总数 ==="); - Integer totalCount = scoreMapper.countTotlePage(); - System.out.println("总记录数:" + totalCount); + Integer totalScoreCount = scoreMapper.countTotlePage(); + System.out.println("总记录数:" + totalScoreCount); // 测试删除成绩(可选,注释掉以避免数据丢失) // System.out.println("\n=== 删除成绩 ==="); diff --git a/grademanagement-MyBatisProject/src/config.xml b/grademanagement-MyBatisProject/src/config.xml index ab95c90..b099525 100644 --- a/grademanagement-MyBatisProject/src/config.xml +++ b/grademanagement-MyBatisProject/src/config.xml @@ -25,5 +25,6 @@ + \ No newline at end of file diff --git a/grademanagement/initial.sql b/grademanagement/initial.sql index f01645c..e477eda 100644 --- a/grademanagement/initial.sql +++ b/grademanagement/initial.sql @@ -2,28 +2,6 @@ SET NAMES utf8mb4; SET FOREIGN_KEY_CHECKS = 0; --- ---------------------------- --- Table structure for demo --- ---------------------------- -DROP TABLE IF EXISTS `demo`; -CREATE TABLE `demo` ( - `did` int(11) NOT NULL AUTO_INCREMENT, - `dname` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - `comment` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, - PRIMARY KEY (`did`) USING BTREE -) ENGINE = InnoDB AUTO_INCREMENT = 27 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; - --- ---------------------------- --- Records of demo --- ---------------------------- -INSERT INTO `demo` VALUES (20, '1', '1111'); -INSERT INTO `demo` VALUES (21, '2', '222'); -INSERT INTO `demo` VALUES (22, '3', '333'); -INSERT INTO `demo` VALUES (23, '4', '444'); -INSERT INTO `demo` VALUES (24, '5', '555'); -INSERT INTO `demo` VALUES (25, '6', '666'); -INSERT INTO `demo` VALUES (26, '7', '777'); - -- ---------------------------- -- Table structure for course -- ---------------------------- @@ -42,4 +20,46 @@ CREATE TABLE `course` ( INSERT INTO `course` VALUES (1, '英语', 0, '张华'); INSERT INTO `course` VALUES (2, 'C语言', 1, '李磊'); +-- ---------------------------- +-- Table structure for score +-- ---------------------------- +DROP TABLE IF EXISTS `score`; +CREATE TABLE `score` ( + `scoreId` int(11) NOT NULL AUTO_INCREMENT, + `studentName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `studentNo` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `courseName` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `score` double NULL DEFAULT NULL, + `semester` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `comment` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`scoreId`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; + +-- ---------------------------- +-- Records of score +-- ---------------------------- +INSERT INTO `score` VALUES (1, '张三', '2021001', 'Java程序设计', 95.5, '2024-2025学年第一学期', '优秀'); +INSERT INTO `score` VALUES (2, '李四', '2021002', 'C语言', 88.0, '2024-2025学年第一学期', '良好'); + +-- ---------------------------- +-- Table structure for class +-- ---------------------------- +DROP TABLE IF EXISTS `class`; +CREATE TABLE `class` ( + `classId` int(11) NOT NULL AUTO_INCREMENT, + `className` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL, + `grade` varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `major` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `teacher` varchar(100) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + `studentCount` int(11) NULL DEFAULT NULL, + `description` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL, + PRIMARY KEY (`classId`) USING BTREE +) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Compact; + +-- ---------------------------- +-- Records of class +-- ---------------------------- +INSERT INTO `class` VALUES (1, '计算机科学与技术1班', 2021, '计算机科学与技术', '王教授', 45, '优秀班级'); +INSERT INTO `class` VALUES (2, '软件工程2班', 2021, '软件工程', '李教授', 42, '良好班级'); + SET FOREIGN_KEY_CHECKS = 1;