一、本课目标
- 掌握MyBatis分页实现
二、MyBatis分页功能实现
需求说明:
- 为用户管理之查询用户列表功能增加分页实现
- 列表结果按照创建时间降序排列
分析:
- 分页-DAO层实现:limit(起始位置,页面容量)
- 查询用户列表的方法增加两个参数(from,pageSize)
xml配置文件:
<!-- 查询用户列表 -->
<select id="getUserList" resultMap="userList">
select
u.*
from
smbms_user u, smbms_role r
where
u.userRole = r.id
<if test="userName != null and userName != ''">
and userName like CONCAT('%',#{userName},'%')
</if>
<if test="userRole != null">
and userRole=#{userRole}
</if>
order by
creationDate DESC
limit
#{from}, #{pageSize}
</select>
接口方法:
public List<User> getUserList(
@Param("userName")String userName,
@Param("userRole")Integer roleId,
@Param("from")Integer currentPageNo,
@Param("pageSize")Integer pageSize
);
测试代码:
@Test
public void testGetUserList() {
List<User> userList = null;
SqlSession sqlSession = null;
try {
sqlSession = MyBatisUtil.createSqlSession();
// 4、调用mapper文件来对数据进行操作,操作之前必须将mapper文件引入到mabatis-config.xml中
// userList = sqlSession.selectList("mmp.UserMapper.getUserList");
userList = sqlSession.getMapper(UserMapper.class).getUserList("", null,0,5);
} catch (Exception e) {
e.printStackTrace();
} finally {
MyBatisUtil.closeSqlSession(sqlSession);
}
for (User user:userList) {
logger.debug("testGetUserList userCode:" + user.getUserCode()
+ "and userName" + user.getUserName() );
}
}
运行结果: