两种方法:
一.基于sql实现分页(UserMapper.xml)
dao层:
UserMapper接口:
package com.liarzn.dao;
import com.liarzn.pojo.User;
import java.util.List;
import java.util.Map;
public interface UserMapper {
//分页查询用户
List<User> getUserByLimit(Map<String,Object> map);
}
UserMapper.xml:
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace=绑定一个指定的Dao/Mapper接口-->
<mapper namespace="com.liarzn.dao.UserMapper">
<select id="getUserByLimit" parameterType="map" resultType="User">
select * from mybatis.user limit #{startIndex} , #{PageSize}
</select>
</mapper>
Test:
import com.liarzn.pojo.User;
import com.liarzn.utils.MyBatisUtils;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class UserDaoTest {
@Test
public void getUserByLimit(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
UserMapper mapper = sqlSession.getMapper(UserMapper.class);
Map<String, Object> map = new HashMap<>();
map.put("startIndex",0);
map.put("PageSize",2);
List<User> userByLimit = mapper.getUserByLimit(map);
for (User user : userByLimit) {
System.out.println(user);
}
sqlSession.close();
}
}
通过map设置StartIndex和PageSize通过sql实现分页。
二.通过rowBounds实现分页(Test)
dao层:
UserMapper接口:
package com.liarzn.dao;
import com.liarzn.pojo.User;
import java.util.List;
import java.util.Map;
public interface UserMapper {
//分页rowBounds实现
List<User> getUserByRowBounds();
}
UserMapper.xml:
<?xml version="1.0" encoding="UTF8" ?>
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!--namespace=绑定一个指定的Dao/Mapper接口-->
<mapper namespace="com.liarzn.dao.UserMapper">
<select id="getUserByRowBounds" resultType="User">
select * from mybatis.user
</select>
</mapper>
Test:
package com.liarzn.dao;
import com.liarzn.pojo.User;
import com.liarzn.utils.MyBatisUtils;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class UserDaoTest {
@Test
public void getUserByRowBounds(){
SqlSession sqlSession = MyBatisUtils.getSqlSession();
RowBounds rowBounds = new RowBounds(1, 2);
List<User> users = sqlSession.selectList("com.liarzn.dao.UserMapper.getUserByRowBounds", null, rowBounds);
for (User user : users) {
System.out.println(user);
}
sqlSession.close();
}
}
新建一个对象RowBounds通过使用该对象来实现分页。