在 MyBatisTest 类中测试 CourseMapper
在这一步中,你将通过在 MyBatisTest.java
文件中创建一个测试用例来测试 CourseMapper
的实现。
- 打开位于
org.labex.test
包中的 MyBatisTest.java
文件。
package org.labex.test;
import java.io.IOException;
import java.io.Reader;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import org.labex.mapper.CourseMapper;
import org.labex.pojo.Course;
public class MyBatisTest {
SqlSessionFactory sessionFactory = null;
SqlSession session = null;
@Before
public void before() throws IOException{
String resource = "mybatis-config.xml";
//加载 MyBatis 配置文件
Reader reader = Resources.getResourceAsReader(resource);
//创建 SqlSession 工厂
sessionFactory = new SqlSessionFactoryBuilder().build(reader);
//创建一个可以在 SQL 映射文件中执行 SQL 语句的 SqlSession 对象
session = sessionFactory.openSession();
}
@Test
public void testCourseMapper() {
CourseMapper courseMapper = session.getMapper(CourseMapper.class);
//创建一个参数映射
Map<String, Object> param = new HashMap<>();
param.put("teacherName", "Am");
//调用 CourseMapper 中定义的方法
List<Course> courses = courseMapper.getCoursesByTeacherName(param);
for (Course course : courses) {
System.out.println(course);
}
}
@After
public void after() {
session.close();
}
}
在 testCourseMapper
方法中,我们首先使用 session.getMapper(CourseMapper.class)
获取 CourseMapper
接口的一个实例。然后,我们创建一个 HashMap
作为输入参数,并放入键为 "teacherName"
、值为 "Am"
的键值对。
最后,我们调用 CourseMapper
的 getCoursesByTeacherName
方法,并打印检索到的 Course
对象。