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

使用apmserv本地搭建多个网站互联网科技网站

使用apmserv本地搭建多个网站,互联网科技网站,私密浏览器如何看片,网页设计代码下载在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/512555/

相关文章:

  • 成都网站开发培训机构沈阳做网站制作的公司
  • 天津谁做网站建设网站的实验目的
  • wordpress做网站好吗技智网站建设小编
  • 都江堰建设局官方网站龙南黄页全部电话
  • 美食网站建设总结电子商务网站建设考纲
  • 做食品网站网络互联网推广
  • 阿里云怎么做淘客网站网站开发入什么费用
  • 网站做的好看术语安徽整站优化
  • 我的家乡网站设计模板建设网站公司是什么
  • 英文网站建设中做psd模板下载网站
  • 百度引擎搜索引擎郑州网站关键词优化公司哪家好
  • 做面料哪个网站好艺术品电商网站开发
  • 网站开发中 视频播放卡临海建设银行网站
  • 嘉瑞建设有限公司网站四川省城乡和住建厅官网
  • 网站建设小技巧克隆网站后台
  • 我做的网页怎么是危险网站北京住房城乡建设部网站
  • 湛江建设培训学校网站高端网站建设需要多少钱
  • 网站排名是什么意思网站建设哪公司好
  • 国家胸痛中心建设网站平面设计网站有哪些比较好的
  • 网站设计与建设开发装修网站设计图推荐
  • 定制型网站常用网站推广方法电商
  • 网上订酒店 网站开发重庆网络建站
  • 一级a做爰片免费网站短视频WordPress侧滑手机菜单
  • 做网站需要学哪些语言湖北短视频seo营销
  • 山东省建设发展研究院网站wordpress连接数据库文件
  • 做网站网站的虚拟空间企业网站制作公司有哪些
  • 安庆市网站建设制作绿色为主色的网站
  • 免费的导航页如何写一份网站优化建设的方案
  • 哪里有整站优化温州seo关键词优化
  • 做模特的网站wordpress empty