当前位置: 首页 > news >正文

网站接口需求信息化建设 网站

网站接口需求,信息化建设 网站,网站建设费 账务处理,wordpress评论框加本文主要讲解Mybatis分页相关的技术分享,如果觉得不错的话,就点个赞吧。。。。 Mybatis分页主要有2种类型: 一、物理分页: 1、定义: 物理分页是在数据库层面进行的分页,即通过SQL语句直接从数据库中查询…

本文主要讲解Mybatis分页相关的技术分享,如果觉得不错的话,就点个赞吧。。。。
 

Mybatis分页主要有2种类型:

        一、物理分页:

                1、定义:

                        物理分页是在数据库层面进行的分页,即通过SQL语句直接从数据库中查询出需要的语句。

                2、优点:

                        只需要加载当前页的数据,不会占用过多的内存,适合数据量大的情况。

        二、内存分页:

                1、定义:

                        内存分页是将所有数据查询出来后,再在内存中进行分页。

                2、优点:

                        减轻数据库的负担,适合数据量小的情况。

                        如果数据量大,会占用大量的内存,严重甚至会导致内存溢出。

实现分页方法详解:

   一:物理分页的方法:

           1、使用LIMIT关键字:

                    这是最常见的物理分页方式,

                   原理:

                         通过在SQL语句中添加Limit子句来实现分页,

                   优缺点:

                        优点是简单直观,缺点是需要手动计算起始位置和结束位置。太低端,太Low,不推荐使用

                  实例:

#查询用户表第1页,一页有3条数据。这个需要开发人员自己计算,然后给到数据库
select * from user limit 1,3
          2、使用PageHelper插件:(推荐)

                   这是Mybatis提供的一个分页插件。

               原理:

                    a、当调用PageHelper.startPage()时,PageHelper会创建一个Page对象,并将其保存到ThreadLocal中。这个Page对象包含了分页信息,如页码和每页的数量。       

                     b、当调用Mapper的查询方法时,Mybatis会生成原始的SQL语句。在这个过程中,PageHelper会通过拦截器(Interceptor)拦截SQL语句的生成过程。               

                     c、 在拦截器中,PageHelper会从ThreadLocal中获取Page对象,然后根据Page对象中的分页信息,修改原始的SQL语句,添加LIMIT子句。

                     d、最后,Mybatis执行修改后的SQL语句,从数据库中查询出分页数据。

                 优缺点:

                     通过这种方式,PageHelper可以在不修改原始SQL语句的情况下,实现物理分页。但是需要注意的是:PageHelper只对其后的第一个SQL语句生效。

                 代码:
// 设置分页信息
PageHelper.startPage(page, size);
// 调用Mapper接口的查询方法
List<User> users = userMapper.selectAll();
                使用注意:

PageHelper的startPage方法只对紧跟着的第一个SQL语句生效,也就是说,如果我们在调用startPage方法之后执行了多个SQL语句,那么只有第一个SQL语句会进行分页查询,其他的SQL语句还是会查询所有的数据。

   使用pageHelper需要引入依赖:

<dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper-spring-boot-starter</artifactId><version>最新版本</version>
</dependency>

二:内存分页的方法:


      1、使用Page对象:

             实现:

                实现有很多种,这里只写出一种。

@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public List<User> getUsers(int page, int size) {// 查询所有数据List<User> allUsers = userMapper.selectAll();// 创建Page对象Page<User> userPage = new Page<>(page, size);// 设置数据userPage.setRecords(allUsers);// 获取当前页的数据return userPage.getRecords();}
}
       2、使用RowBounds对象:(推荐)
            原理:

                MyBatis在执行查询操作时,会检查是否传入了RowBounds对象,如果传入了,就会使用RowBounds中的offset和limit属性来对查询结果进行分页处理。具体的实现方式是,MyBatis会在生成的SQL语句中添加LIMIT和OFFSET关键字,然后将RowBounds中的offset和limit属性的值分别设置为LIMIT和OFFSET关键字的参数,从而实现分页查询。

           实现:

                a.  在Mapper接口的查询方法中,添加一个RowBounds类型的参数。

                b.在调用Mapper接口的查询方法时,创建一个RowBounds对象,并设置其offset和limit属性的值。

                c. MyBatis在执行查询操作时,会检查是否传入了RowBounds对象,如果传入了,就会使用        RowBounds中的offset和limit属性来对查询结果进行分页处理。

         代码:
//我们需要在Mapper接口中定义一个使用RowBounds的查询方法:
@Mapper
public interface UserMapper {List<User> selectAll(RowBounds rowBounds);
}//在Service层中,我们可以调用这个方法,并传入一个RowBounds对象来进行分页查询:
@Service
public class UserService {@Autowiredprivate UserMapper userMapper;public List<User> getUsers(int page, int size) {// 创建RowBounds对象RowBounds rowBounds = new RowBounds((page - 1) * size, size);// 调用Mapper接口的查询方法return userMapper.selectAll(rowBounds);}
}

http://www.yayakq.cn/news/258745/

相关文章:

  • 仿站小工具+wordpress分销商城网站建设
  • 房屋中介做网站的书籍超级外链发布
  • 陈村网站建设江苏盐城网络科技有限公司
  • wordpress数据库连接不上济南官网优化推广
  • 南宁网站制作费用湘潭网站建设 AA磐石网络
  • 网站seo相关设置优化架设个人网站
  • 一个微信网站多少钱营销型网站建设费用
  • 开福区城乡建设局网站做直播导航网站
  • 用asp做网站的可行性分析dede网站源码打包下载
  • 商丘做网站的费用python 做爬虫网站
  • 搜索引擎营销是目前最主要的网站推广营销云服务器是什么意思
  • 做网站前台模型要做什么呢做画册的国外网站
  • 网站用什么字体做正文如何做自己的论坛网站
  • 河北省和城乡住房建设厅网站免费设计图片素材网站
  • 用excel 做网站邯郸注册网络科技公司
  • 平台做网站点击惠州网络推广费用
  • 如何做网站推广雷公钻极客联盟网站建设公司怎么样
  • 深圳专门做网站的公司有哪些为什么浏览器打不开一些网站
  • 网站开发项目怎么接北京有限公司有哪些
  • 做电商设计在哪个网站接单饲料行业建设网站方案设计免费下载ppt
  • 大连做网站报价服装定制行业的未来和趋势
  • 怎么建立一个网站域名网站篡改搜索引擎js
  • 古风网站怎么做棕色网站
  • 单页响应式网站模板做网站需要哪方面的编程
  • 网站seo收费织梦网站自助申请友链代码
  • 网站title怎么写做pc端网站包括哪些
  • 中国免费网站服务器主机域名昆明小程序开发报价
  • 营销网站与企业网站的区别o2o移动电子商务平台有哪些
  • 网站建设运营合同书访问网页的方法
  • 查找网站注册时间宠物美容网站建设的目的