批量查询课程信息
在这一步中,你将学习如何使用动态 SQL 批量查询课程编号为 “1,2,3” 的课程信息。
-
打开位于 /org/lanqiao/mapper/
目录下的 CourseMapper.java
文件。
-
在 CourseMapper
接口中实现 selectCoursesByIds
方法。此方法应接受一个 Map<String, Object>
参数来保存输入参数。
List<Map<String, Object>> selectCoursesByIds(Map<String, Object> params);
-
打开位于 /org/lanqiao/mapper/
目录下的 CourseMapper.xml
文件。
-
在 CourseMapper
命名空间中实现 selectCoursesByIds
SQL 语句。使用 <foreach>
标签遍历 ids
列表并构建 IN 子句。
<select id="selectCoursesByIds" resultMap="courseResultMap" parameterType="java.util.Map">
SELECT * FROM course WHERE cNo IN
<foreach collection="ids" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</select>
-
打开位于 /org/lanqiao/test/
目录下的 MyBatisTest.java
文件。
-
实现 testSelectCoursesByIds
测试方法以测试 selectCoursesByIds
功能。
@Test
public void testSelectCoursesByIds() {
CourseMapper mapper = session.getMapper(CourseMapper.class);
List<Integer> ids = Arrays.asList(1, 2, 3);
Map<String, Object> params = new HashMap<>();
params.put("ids", ids);
List<Map<String, Object>> coursesByIds = mapper.selectCoursesByIds(params);
System.out.println(coursesByIds);
}
运行
为确保代码正常工作,请务必在代码中引入相关类。
CourseMapper.java
:
import org.lanqiao.pojo.Course;
import java.util.List;
import java.util.Map;
MyBatisTest.java
:
import java.util.Arrays;
import java.util.HashMap;
最后,你可以在终端中编译并运行代码,并使用 Maven 检查测试文件,使用以下命令:
cd MyBatisCourseDemo03
mvn test
你可以参考 👀 预览
查看运行效果。