8、mybatis分页

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();
}
}

 

原文地址:https://www.cnblogs.com/zhangzhixi/p/14203809.html