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

做网站前端后台led wordpress

做网站前端后台,led wordpress,看房子建设进度的网站,免费动图制作app在MyBatis中,分页查询是一种常见的需求,尤其是在处理大数据量的情况下。MyBatis本身不直接提供分页功能,但可以通过以下几种常见的实现方式来实现分页查询。 1. 手动分页 这是最基本的分页方式,直接在SQL语句中添加分页参数。不同…

在MyBatis中,分页查询是一种常见的需求,尤其是在处理大数据量的情况下。MyBatis本身不直接提供分页功能,但可以通过以下几种常见的实现方式来实现分页查询。

1. 手动分页

这是最基本的分页方式,直接在SQL语句中添加分页参数。不同的数据库分页语法不同,以下是一些常见数据库的分页实现。

1.1 MySQL中的分页

<select id="findUsersByPage" resultType="User">SELECT * FROM usersLIMIT #{offset}, #{pageSize}
</select>
  • LIMIT #{offset}, #{pageSize}offset表示起始行偏移量,pageSize表示每页的记录数。

1.2 Oracle中的分页

<select id="findUsersByPage" resultType="User">SELECT * FROM (SELECT A.*, ROWNUM AS RNFROM (SELECT * FROM users ORDER BY id) AWHERE ROWNUM <= #{endRow})WHERE RN > #{startRow}
</select>
  • Oracle使用ROWNUM来实现分页,其中startRowendRow分别表示分页的起始和结束行号。

1.3 SQL Server中的分页

<select id="findUsersByPage" resultType="User">SELECT * FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS RowNum, *FROM users) AS resultWHERE RowNum BETWEEN #{startRow} AND #{endRow}
</select>
  • SQL Server中,使用ROW_NUMBER()函数进行分页,并结合BETWEEN语句来筛选行号范围。

2. 使用RowBounds对象进行分页

MyBatis提供了RowBounds对象用于内存分页。它会将查询结果集限制在指定的行数内。这种方式不依赖于数据库的分页语法,而是通过Java内存进行分页。

2.1 使用RowBounds分页

List<User> findUsers(RowBounds rowBounds);
java复制代码RowBounds rowBounds = new RowBounds(offset, pageSize);
List<User> users = userMapper.findUsers(rowBounds);
  • RowBounds通过offsetlimit进行分页。

2.2 注意事项

  • RowBounds会将查询的所有结果集加载到内存中,然后进行分页处理,这对大数据量查询效率较低,适合小数据量分页场景。

3. 使用分页插件

分页插件是一种更为高效和方便的方式,特别是在大型项目中。分页插件会自动拦截查询SQL,并在其基础上增加分页逻辑。

3.1 MyBatis-PageHelper插件

PageHelper是MyBatis的一个常用分页插件,它通过拦截SQL语句并追加分页语句来实现分页查询。

  • Maven依赖

    <dependency><groupId>com.github.pagehelper</groupId><artifactId>pagehelper</artifactId><version>5.2.0</version>
    </dependency>
  • 配置方式

    @Configuration
    public class MyBatisConfig {@Beanpublic PageHelper pageHelper() {PageHelper pageHelper = new PageHelper();Properties properties = new Properties();properties.setProperty("helperDialect", "mysql");properties.setProperty("reasonable", "true");properties.setProperty("supportMethodsArguments", "true");pageHelper.setProperties(properties);return pageHelper;}
    }
  • 使用方式

    PageHelper.startPage(pageNum, pageSize);
    List<User> users = userMapper.findAll();
    PageInfo<User> pageInfo = new PageInfo<>(users);
    • PageHelper.startPage(pageNum, pageSize):设置分页参数,pageNum表示当前页码,pageSize表示每页显示的记录数。

    • PageInfo<User>PageInfo是一个分页结果对象,包含了分页后的信息,如总页数、总记录数等。

3.2 MyBatis-Plus中的分页插件

MyBatis-Plus也提供了分页插件,使用方式类似于PageHelper。

  • Maven依赖

    <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-boot-starter</artifactId><version>3.4.3.4</version>
    </dependency>
  • 配置方式

    @Configuration
    public class MyBatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
    }
  • 使用方式

    Page<User> page = new Page<>(pageNum, pageSize);
    IPage<User> userPage = userMapper.selectPage(page, null);
    • Page<>(pageNum, pageSize):构建分页参数对象。

    • IPage<User>:MyBatis-Plus中的分页结果对象,包含分页后的数据和分页信息。

4. 数据库支持的分页查询

有些数据库(如MySQL、PostgreSQL)天生支持分页查询,可以直接在SQL语句中使用LIMITOFFSET等关键字进行分页,而其他数据库(如Oracle)则需要使用子查询或窗口函数来实现分页。

总结

在MyBatis中实现分页查询的方式主要有以下几种:

  1. 手动分页:直接在SQL中编写分页语句,适合于需要控制分页SQL的场景,但需要根据不同数据库编写不同的分页SQL。

  2. RowBounds分页:MyBatis提供的内存分页方法,适合小数据量分页,但不推荐大数据量使用。

  3. 分页插件:如PageHelper、MyBatis-Plus分页插件,通过拦截器方式实现分页,自动生成分页SQL,适合大多数场景,性能较好。

选择哪种分页方式应根据项目的实际需求、数据量大小以及开发的复杂性进行权衡。对于大多数场景,使用分页插件是一个简单高效的选择。

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

相关文章:

  • 招生型网站建设网站建设须知
  • 没有备案的网站怎么访问不了广州公司网站建设公司
  • 网站推广外包深圳网站建设公司哪家好
  • 销售网站开发的背景海外广告投放代理商
  • 哈尔滨最好的网站建设公司数字博物馆网站建设内容
  • 网站建设软件 免费做内部优惠券网站赚钱吗
  • 建设银行网站可以更改个人电话海宁高端网站设计
  • 重庆名威建设工程咨询有限公司网站山亭 网站建设
  • 简约 时尚 高端 网站建设重庆可做网站 APP
  • wordpress加载jquery库深圳网站的优化公司
  • 整站网站优化运营企业网站html百度云
  • 微网站开发平台wizi游戏开发和网站开发那个有前景
  • 局网站建设情况汇报商城小程序报价
  • 网站 通管局 报备家装公司利润一般多少
  • 做招聘网站创业唯品会购物网站开发项目
  • 注册公司网站怎么做中文网站建设计划书
  • 天津建设与管理局网站国家域名注册
  • 济宁网站建设培训班做小程序要有网站吗
  • 无锡网站制作服务c 网站开发的好处
  • 做网站必须购买空间吗?哪个网站免费h5模板多
  • 网站的flash网页qq属于
  • 青岛建设项目环评公示网站专门做网站的公司有哪些
  • 漯河哪里做网站郑州做网站那
  • 即墨城乡建设局网站成都 网站改版
  • 鄂州网站建设价格开发软件怎么申请版权
  • 东莞营销型高端网站建设中山品牌网站建设
  • 湘潭网站建设公司有哪些广告推广的好处
  • 外贸设计网站建设鼓楼公司网站建设费用
  • 企业信息系统查询系统网站seo排名公司
  • wordpress的站点地址和做学习交流网站