feat(mapper): 添加部门、专业、学生和公告模块的数据访问层

- 创建 DepartmentMapper 接口及其实现,支持按ID查询和查询所有功能
- 创建 MajorMapper 接口及其实现,支持按ID查询和查询所有功能
- 创建 StudentMapper 接口及其实现,支持按ID查询和查询所有功能
- 创建 NoticeMapper 接口及其实现,支持按ID查询和查询所有功能
- 配置对应的 MyBatis XML 映射文件,定义 SQL 查询语句
- 更新 config.xml 配置文件,移除不需要的 ClassMapper 引用
- 修改项目模块配置文件,调整编译输出设置和依赖库引用
- 扩展测试类 TestMyBatis,添加对各个模块的完整测试功能
main
CesarH 2 weeks ago
parent e69d324f70
commit 0fbc9c21d7

@ -1,14 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<module type="JAVA_MODULE" version="4">
<component name="NewModuleRootManager" inherit-compiler-output="true">
<component name="NewModuleRootManager" inherit-compiler-output="false">
<output url="file://$MODULE_DIR$/out/production" />
<exclude-output />
<content url="file://$MODULE_DIR$">
<sourceFolder url="file://$MODULE_DIR$/src" isTestSource="false" />
<sourceFolder url="file://$MODULE_DIR$/src/com/ssm/mapper" type="java-resource" />
</content>
<orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="library" name="lib (3)" level="project" />
<orderEntry type="library" name="lib" level="project" />
</component>
</module>

@ -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<Department> getDepartmentAll();
}

@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ssm.mapper.DepartmentMapper">
<!-- 按ID查询 -->
<select id="getDepartmentById" resultType="com.ssm.entity.Department" parameterType="Integer">
SELECT * FROM department WHERE dept_id = #{deptId}
</select>
<!-- 查询所有 -->
<select id="getDepartmentAll" resultType="com.ssm.entity.Department">
SELECT * FROM department
</select>
</mapper>

@ -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<Major> getMajorAll();
}

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ssm.mapper.MajorMapper">
<select id="getMajorById" resultType="com.ssm.entity.Major" parameterType="Integer">
SELECT * FROM major WHERE major_id = #{majorId}
</select>
<select id="getMajorAll" resultType="com.ssm.entity.Major">
SELECT * FROM major
</select>
</mapper>

@ -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<Notice> getNoticeAll();
}

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ssm.mapper.NoticeMapper">
<select id="getNoticeById" resultType="com.ssm.entity.Notice" parameterType="Integer">
SELECT * FROM notice WHERE notice_id = #{noticeId}
</select>
<select id="getNoticeAll" resultType="com.ssm.entity.Notice">
SELECT * FROM notice
</select>
</mapper>

@ -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<Student> getStudentAll();
}

@ -0,0 +1,12 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.ssm.mapper.StudentMapper">
<select id="getStudentById" resultType="com.ssm.entity.Student" parameterType="Integer">
SELECT * FROM student WHERE student_id = #{studentId}
</select>
<select id="getStudentAll" resultType="com.ssm.entity.Student">
SELECT * FROM student
</select>
</mapper>

@ -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<Department> 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<Major> 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<Student> 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<Notice> noticeList = mapper.getNoticeAll();
System.out.println("\n===== 公告模块 - 查询所有 =====");
noticeList.forEach(System.out::println);
}
}
}

@ -25,6 +25,5 @@
<mapper resource="com/ssm/mapper/DepartmentMapper.xml"/>
<mapper resource="com/ssm/mapper/MajorMapper.xml"/>
<mapper resource="com/ssm/mapper/NoticeMapper.xml"/>
<mapper resource="com/ssm/mapper/ClassMapper.xml"/>
</mappers>
</configuration>
Loading…
Cancel
Save