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

西昌建设工程招聘信息网站网站建设竞价托管什么意思

西昌建设工程招聘信息网站,网站建设竞价托管什么意思,广告网址,WordPress修改图片信息在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/863242/

相关文章:

  • 湖北高端网站建设价格南宁网站建设托管
  • 如何通过建设网站赚钱推广软件的app
  • 网站如何做的有气质个人网页制作成品田田田田田田田田
  • 课堂阵地建设网站网页设计代码图片
  • 网站论坛 备案怎么找客户渠道
  • iis 网站 优化有没有让人做问卷的网站
  • 塑料机械怎么做网站wordpress添加文档
  • 电子书网站 跟我学做家常菜800公司如何建立网站
  • 做网站会遇到的问题广州工程有限公司
  • 美容院怎么建立自己的网站企业官网模版制作
  • 洮南市城乡和住房建设局网站移动网站 图片优化
  • 网站如何做一张轮播图个人社保缴费多少钱一个月
  • 昆明做网站报价pico笔克品牌介绍
  • 阿里云网站建设部署与发布六安人事考试网官网
  • 优秀的网站首页交换友情链接的注意事项
  • 宿州网站建设公司东莞网站建设 石佳
  • 做网站的软件有哪些app开发公司入
  • 卡密网站怎么做的wordpress的集成环境搭建
  • 江苏省工程建设网网络优化岗位详细介绍
  • 英文网站建设方案模板高校网页开发工具软件
  • 菏泽建设公司网站免费图标下载网站
  • 做网站ps建立多大的画布一个高端的网站设计
  • 陕西省建设厅网站首页电商网站开发缓存
  • 荆门建网站费用六安建筑模板厂家10强
  • 做公司网站需要学哪些网络营销推广工作内容
  • 江西有色建设集团有限公司网站岳阳seo
  • 抚州购物网站开发设计网站建设要代码有什么好处
  • 南山建站公司中装建设重组消息
  • 德惠网站中国摄影在线网站
  • 做二手设备的网站宣传片拍摄设备清单