MySQL中执行分页语句:
index:从什么位置开始分页 pageIndex:分页显示的数量
select * from mybatis.user limit index,pageIndex;
第一种、使用mybatis进行分页操作:(map操作)
IUserDao接口(定义业务方法):
public interface IUserDao { /**分页查询*/ List<User> getPageByLimit(Map<String,Integer> map); }
UserMapper.xmlmapper(实现类):
<!--命名空间:绑定UserDao相当于实现这个接口--> <mapper namespace="com.zhixi.dao.IUserDao"> <!--结果集映射:用于实体类跟数据库字段名称不一样的情况--> <resultMap id="userMap" type="user"> <!--column:数据库中的字段 property:实体类中的属性--> <result column="id" property="id"/> <result column="name" property="name"/> <result column="pwd" property="password"/> </resultMap> <!--分页--> <select id="getPageByLimit" resultMap="userMap" parameterType="map" > select * from mybatis.user limit #{index},#{pageIndex}; </select>
</mapper>
测试类:
public class IUserDaoTest { @Test public void getLimitTest() { SqlSession sqlSession = MybatisUtils.getSqlSession(); IUserDao mapper = sqlSession.getMapper(IUserDao.class); Map<String, Integer> map = new HashMap<String, Integer>(); //这里的index跟pageIndex要与mapper对应 map.put("index", 0); map.put("pageIndex", 2); List<User> pageByLimit = mapper.getPageByLimit(map); for (User user : pageByLimit) { System.out.println(user); } sqlSession.close(); }
结果:
第二种、使用mybatis进行分页操作:(普通limit实现)
IUserDao接口(定义业务方法):
public interface UserDao { /** * 分页查询的第二种方式 */ List<User> getLimit(@Param("id1") Integer id1, @Param("id2") Integer id2); }
UserMapper.xmlmapper(实现类):
<!--命名空间:绑定UserDao相当于实现这个接口--> <mapper namespace="com.zhixi.dao.IUserDao"> <!--结果集映射:用于实体类跟数据库字段名称不一样的情况--> <resultMap id="userMap" type="user"> <!--column:数据库中的字段 property:实体类中的属性--> <result column="id" property="id"/> <result column="name" property="name"/> <result column="pwd" property="password"/> </resultMap> <!--分页-->
<select id="getLimit" parameterType="int" resultMap="BaseResultMap">
select * from mybatis.user limit #{id1},#{id2};
</select>
</mapper>
测试类:
public class IUserDaoTest {
@Test
public void getLimit(){
SqlSession sqlSession = MybatisUtils.getSqlSession();
UserDao mapper = sqlSession.getMapper(UserDao.class);
List<User> limit = mapper.getLimit(0, 2);
for (User user : limit) {
System.out.println(user);
}
sqlSession.close();
}
}