From 0fbc9c21d791c2be88dade7682129398a29d7c73 Mon Sep 17 00:00:00 2001 From: CesarH Date: Wed, 20 May 2026 11:43:21 +0800 Subject: [PATCH] =?UTF-8?q?feat(mapper):=20=E6=B7=BB=E5=8A=A0=E9=83=A8?= =?UTF-8?q?=E9=97=A8=E3=80=81=E4=B8=93=E4=B8=9A=E3=80=81=E5=AD=A6=E7=94=9F?= =?UTF-8?q?=E5=92=8C=E5=85=AC=E5=91=8A=E6=A8=A1=E5=9D=97=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=AE=BF=E9=97=AE=E5=B1=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 创建 DepartmentMapper 接口及其实现,支持按ID查询和查询所有功能 - 创建 MajorMapper 接口及其实现,支持按ID查询和查询所有功能 - 创建 StudentMapper 接口及其实现,支持按ID查询和查询所有功能 - 创建 NoticeMapper 接口及其实现,支持按ID查询和查询所有功能 - 配置对应的 MyBatis XML 映射文件,定义 SQL 查询语句 - 更新 config.xml 配置文件,移除不需要的 ClassMapper 引用 - 修改项目模块配置文件,调整编译输出设置和依赖库引用 - 扩展测试类 TestMyBatis,添加对各个模块的完整测试功能 --- .../grademanagement-MyBatisProject.iml | 5 +- .../src/com/ssm/mapper/DepartmentMapper.java | 10 +++ .../src/com/ssm/mapper/DepartmentMapper.xml | 14 ++++ .../src/com/ssm/mapper/MajorMapper.java | 8 ++ .../src/com/ssm/mapper/MajorMapper.xml | 12 +++ .../src/com/ssm/mapper/NoticeMapper.java | 8 ++ .../src/com/ssm/mapper/NoticeMapper.xml | 12 +++ .../src/com/ssm/mapper/StudentMapper.java | 8 ++ .../src/com/ssm/mapper/StudentMapper.xml | 12 +++ .../src/com/ssm/test/TestMyBatis.java | 80 ++++++++++++++++--- grademanagement-MyBatisProject/src/config.xml | 1 - 11 files changed, 157 insertions(+), 13 deletions(-) create mode 100644 grademanagement-MyBatisProject/src/com/ssm/mapper/DepartmentMapper.java create mode 100644 grademanagement-MyBatisProject/src/com/ssm/mapper/DepartmentMapper.xml create mode 100644 grademanagement-MyBatisProject/src/com/ssm/mapper/MajorMapper.java create mode 100644 grademanagement-MyBatisProject/src/com/ssm/mapper/MajorMapper.xml create mode 100644 grademanagement-MyBatisProject/src/com/ssm/mapper/NoticeMapper.java create mode 100644 grademanagement-MyBatisProject/src/com/ssm/mapper/NoticeMapper.xml create mode 100644 grademanagement-MyBatisProject/src/com/ssm/mapper/StudentMapper.java create mode 100644 grademanagement-MyBatisProject/src/com/ssm/mapper/StudentMapper.xml diff --git a/grademanagement-MyBatisProject/grademanagement-MyBatisProject.iml b/grademanagement-MyBatisProject/grademanagement-MyBatisProject.iml index c1908f0..62b39dd 100644 --- a/grademanagement-MyBatisProject/grademanagement-MyBatisProject.iml +++ b/grademanagement-MyBatisProject/grademanagement-MyBatisProject.iml @@ -1,14 +1,13 @@ - + + - - \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/DepartmentMapper.java b/grademanagement-MyBatisProject/src/com/ssm/mapper/DepartmentMapper.java new file mode 100644 index 0000000..be2e8c1 --- /dev/null +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/DepartmentMapper.java @@ -0,0 +1,10 @@ +package com.ssm.mapper; +import com.ssm.entity.Department; +import java.util.List; + +public interface DepartmentMapper { + // 按ID查询 + Department getDepartmentById(Integer deptId); + // 查询所有 + List getDepartmentAll(); +} \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/DepartmentMapper.xml b/grademanagement-MyBatisProject/src/com/ssm/mapper/DepartmentMapper.xml new file mode 100644 index 0000000..eb411c6 --- /dev/null +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/DepartmentMapper.xml @@ -0,0 +1,14 @@ + + + + + + + + \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/MajorMapper.java b/grademanagement-MyBatisProject/src/com/ssm/mapper/MajorMapper.java new file mode 100644 index 0000000..af5b2bd --- /dev/null +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/MajorMapper.java @@ -0,0 +1,8 @@ +package com.ssm.mapper; +import com.ssm.entity.Major; +import java.util.List; + +public interface MajorMapper { + Major getMajorById(Integer majorId); + List getMajorAll(); +} \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/MajorMapper.xml b/grademanagement-MyBatisProject/src/com/ssm/mapper/MajorMapper.xml new file mode 100644 index 0000000..d6a377c --- /dev/null +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/MajorMapper.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/NoticeMapper.java b/grademanagement-MyBatisProject/src/com/ssm/mapper/NoticeMapper.java new file mode 100644 index 0000000..4e7027b --- /dev/null +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/NoticeMapper.java @@ -0,0 +1,8 @@ +package com.ssm.mapper; +import com.ssm.entity.Notice; +import java.util.List; + +public interface NoticeMapper { + Notice getNoticeById(Integer noticeId); + List getNoticeAll(); +} \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/NoticeMapper.xml b/grademanagement-MyBatisProject/src/com/ssm/mapper/NoticeMapper.xml new file mode 100644 index 0000000..6927425 --- /dev/null +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/NoticeMapper.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/StudentMapper.java b/grademanagement-MyBatisProject/src/com/ssm/mapper/StudentMapper.java new file mode 100644 index 0000000..98f3bbd --- /dev/null +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/StudentMapper.java @@ -0,0 +1,8 @@ +package com.ssm.mapper; +import com.ssm.entity.Student; +import java.util.List; + +public interface StudentMapper { + Student getStudentById(Integer studentId); + List getStudentAll(); +} \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/mapper/StudentMapper.xml b/grademanagement-MyBatisProject/src/com/ssm/mapper/StudentMapper.xml new file mode 100644 index 0000000..282fb50 --- /dev/null +++ b/grademanagement-MyBatisProject/src/com/ssm/mapper/StudentMapper.xml @@ -0,0 +1,12 @@ + + + + + + \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/com/ssm/test/TestMyBatis.java b/grademanagement-MyBatisProject/src/com/ssm/test/TestMyBatis.java index e823a00..1c87ef3 100644 --- a/grademanagement-MyBatisProject/src/com/ssm/test/TestMyBatis.java +++ b/grademanagement-MyBatisProject/src/com/ssm/test/TestMyBatis.java @@ -1,22 +1,84 @@ package com.ssm.test; +import com.ssm.entity.Department; +import com.ssm.entity.Major; +import com.ssm.entity.Student; +import com.ssm.entity.Notice; +import com.ssm.mapper.DepartmentMapper; +import com.ssm.mapper.MajorMapper; +import com.ssm.mapper.StudentMapper; +import com.ssm.mapper.NoticeMapper; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; -import java.io.IOException; import java.io.Reader; +import java.util.List; public class TestMyBatis { - public static void main(String[] args) throws IOException { + public static void main(String[] args) throws Exception { + // 1. 加载配置文件 Reader reader = Resources.getResourceAsReader("config.xml"); - //SqlSession工厂对象 SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(reader); - //SqlSession对象:代表了和数据库的一次对话 - SqlSession session = factory.openSession(); - System.out.println("MyBatis入门成功!"); - //关闭链接 - session.close(); + SqlSession sqlSession = factory.openSession(); + + // 2. 测试院系模块 + testDepartment(sqlSession); + // 3. 测试专业模块 + testMajor(sqlSession); + // 4. 测试学生模块 + testStudent(sqlSession); + // 5. 测试公告模块 + testNotice(sqlSession); + + sqlSession.close(); + reader.close(); + } + + // 院系模块测试 + private static void testDepartment(SqlSession sqlSession) { + DepartmentMapper mapper = sqlSession.getMapper(DepartmentMapper.class); + // 按ID查询 + Department dept = mapper.getDepartmentById(1); + System.out.println("===== 院系模块 - 按ID查询 ====="); + System.out.println(dept); + // 查询所有 + List deptList = mapper.getDepartmentAll(); + System.out.println("\n===== 院系模块 - 查询所有 ====="); + deptList.forEach(System.out::println); + } + + // 专业模块测试 + private static void testMajor(SqlSession sqlSession) { + MajorMapper mapper = sqlSession.getMapper(MajorMapper.class); + Major major = mapper.getMajorById(1); + System.out.println("\n===== 专业模块 - 按ID查询 ====="); + System.out.println(major); + List majorList = mapper.getMajorAll(); + System.out.println("\n===== 专业模块 - 查询所有 ====="); + majorList.forEach(System.out::println); + } + + // 学生模块测试 + private static void testStudent(SqlSession sqlSession) { + StudentMapper mapper = sqlSession.getMapper(StudentMapper.class); + Student student = mapper.getStudentById(1); + System.out.println("\n===== 学生模块 - 按ID查询 ====="); + System.out.println(student); + List studentList = mapper.getStudentAll(); + System.out.println("\n===== 学生模块 - 查询所有 ====="); + studentList.forEach(System.out::println); + } + + // 公告模块测试 + private static void testNotice(SqlSession sqlSession) { + NoticeMapper mapper = sqlSession.getMapper(NoticeMapper.class); + Notice notice = mapper.getNoticeById(1); + System.out.println("\n===== 公告模块 - 按ID查询 ====="); + System.out.println(notice); + List noticeList = mapper.getNoticeAll(); + System.out.println("\n===== 公告模块 - 查询所有 ====="); + noticeList.forEach(System.out::println); } -} +} \ No newline at end of file diff --git a/grademanagement-MyBatisProject/src/config.xml b/grademanagement-MyBatisProject/src/config.xml index 6c151f8..69dbb96 100644 --- a/grademanagement-MyBatisProject/src/config.xml +++ b/grademanagement-MyBatisProject/src/config.xml @@ -25,6 +25,5 @@ - \ No newline at end of file