打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
7 LIMIT分页

LIMIT分页

为什么需要分页?

在对数据库进行大量数据查询时,往往需要使用分页进行查询,每次处理小部分数据,这样对数据库的压力在可控范围内。

使用LIMIT分页的常用语法

#数据库索引是从0开始SELECT * FROM table LIMIT stratIndex,pageSizeSELECT * FROM table LIMIT 5,10; // 检索记录行 6-15  #为了检索从某一个偏移量到记录集的结束所有的记录行,可以指定第二个参数为 -1,在最小的mysql版本中,该语法可以使用SELECT * FROM table LIMIT 95,-1; // 检索记录行 96-last.  #如果只给定一个参数,它表示返回最大的记录行数目:   SELECT * FROM table LIMIT 5; //检索前 5 个记录行  #换句话说,LIMIT n 等价于 LIMIT 0,n。 

使用LIMIT进行分页:

步骤:

1、在UserMapper.java接口中,编写函数

    // 分页查询    List<User> getUserByLimit(Map map);

2、编写UserMapper.xml文件,传入参数类型为map

    <resultMap id="UserResult" type="User">        <!-- column是数据库表的列名 , property是对应实体类的属性名 -->        <id column="id" property="id"/>        <result column="name" property="username"/>        <result column="pwd" property="password"/>    </resultMap>    <select id="getUserByLimit" parameterType="map" resultMap="UserResult">        SELECT * FROM user LIMIT #{startIndex}, #{pageSize}    </select>

3、测试

    @Test    public void getUserByLimit(){        SqlSession sqlSession = MyBatisTool.getSqlSession();        UserMapper mapper = sqlSession.getMapper(UserMapper.class);        // 分页,查询第一页,页面大小为2        int pageIndex = 1;        int pageSize = 2;        // 用map准备参数        Map<String, Integer> map = new HashMap<String, Integer>();        //计算起始索引        int startIndex = (pageIndex - 1) * pageSize;        map.put("startIndex", startIndex);        map.put("pageSize", pageSize);        // 执行查询        List<User> userList = mapper.getUserByLimit(map);        for (User user : userList) {            System.out.println(user);        }        sqlSession.close();    }

使用RowBounds分页:【了解】

我们除了使用Limit在SQL层面实现分页,也可以使用RowBounds在Java代码层面实现分页。

1、在UserMapper.java接口中,编写函数

    // RowBounds分页    List<User> getUserListByRowBounds();

2、编写UserMapper.xml文件,传入参数类型为map

    <resultMap id="UserResult" type="User">        <!-- column是数据库表的列名 , property是对应实体类的属性名 -->        <id column="id" property="id"/>        <result column="name" property="username"/>        <result column="pwd" property="password"/>    </resultMap>    <select id="getUserListByRowBounds" resultMap="UserResult">        SELECT * FROM user    </select>

3、测试

    @Test    public void getUserListByRowBounds(){        SqlSession sqlSession = MyBatisTool.getSqlSession();        int pageIndex = 1;        int pageSize = 2;        RowBounds rowBounds = new RowBounds((pageIndex - 1) * pageSize, pageSize);        List<User> userList = sqlSession.selectList("com.bg.mapper.UserMapper.getUserListByRowBounds", null, rowBounds);        for (User user : userList) {            System.out.println(user);        }        sqlSession.close();    }

使用插件进行分页:

PageHelper自行了解。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
Mybatis分页插件-pagehelper
MyBatis:简单物理分页实现(Plugin)
mybatis
5 ResultMap
Mybatis分页那点事
一步步学Mybatis
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服