在mybatis结合PageHelper分页工具使用时,可以节省不少代码与时间,但也有可能碰到一些问题。以下会记录使用时遇到的坑。
(一)在mybatis使用collection映射一对多关系的结果集时,PageInfo返回的total总数错误
错误案例(只贴关键部分代码):
service层:
@Service
public class TeacherService {
@Resource
TeacherMapper teacherMapper;
public PageInfo selectListByPage(PageParam pageParam) {
PageHelper.startPage(pageParam.getPageNum(), pageParam.getPageSize());
return new PageInfo(teacherMapper.selectListByPage());
}
}
TeacherMapper.xml文件:
<?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.example.page.dao.TeacherMapper">
<resultMap id="TeacherDtoMap" type="com.example.page.dto.TeacherDto">
<id column="tid" jdbcType="INTEGER" property="tid" />
<result column="tname" jdbcType="VARCHAR" property="tname" />
<collection property="classList" resultMap="classDtoListMap">
</collection>
</resultMap>
<resultMap id="classDtoListMap" type="com.example.page.