Cache和IRIS 数据库 分页查询(指定起始页)

2024-05-15 16:04

本文主要是介绍Cache和IRIS 数据库 分页查询(指定起始页),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

全网几乎没有Cache数据库和IRIS数据库的分页查询(指定起始页),因此排了不少坑总结了可实行的方案。

目录

  • 一、Cache数据库分页查询(指定起始页)
  • 二、IRIS数据库分页查询(指定起始页)

一、Cache数据库分页查询(指定起始页)

Cache分页查询的参考文章
参考文章一
参考文章二

 /*** (只有2011.1版本以后的cache数据库支持%VID分页查询)(2011版本之前的cache数据库建议直接放弃指定起始页分页查询)* 采用分页查询升序方式,获取指定表的主键或索引字段下的数据* @param dataBaseName  数据库名称* @param schemaName schema名称* @param tableName  表名称* @param sortingField  排序字段,主键或者索引字段* @param connection 数据库连接* @param startPosition  每一页的起始查询位置* @param singlePageLength  每页获取多少条数据* @return* @throws Exception*/@Overridepublic Map<String, JSONObject> pagingQuerySample(String dataBaseName, String schemaName, String tableName,String sortingField, Object connection, long startPosition, Integer singlePageLength) throws Exception{String sql = "";ResultSet rs = null;PreparedStatement preStmt = null;Map<String, JSONObject> resultMap;try{if(StringUtil.isNotEmpty(sortingField)){// 构造查询sqlsql = String.format("SELECT *, %VID FROM (SELECT TOP ALL * FROM %s.%s ORDER BY %s) WHERE %VID BETWEEN %s AND %s",schemaName,tableName, sortingField, startPosition+1, singlePageLength + startPosition + 1);}else {sql = String.format("SELECT *, %VID FROM (SELECT TOP ALL * FROM %s.%s ) WHERE %VID BETWEEN %s AND %s",schemaName,tableName, startPosition+1, singlePageLength + startPosition + 1);}preStmt = ((Connection)connection).prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = preStmt.executeQuery();resultMap = ResultSetUtil.getMapResultSet(rs, 0);return resultMap;}catch (Exception e){e.printStackTrace();LOGGER.error("分页查询数据失败,失败原因是:", e);return null;}finally {// 关闭资源try {if (rs != null) {rs.close();}if (preStmt != null) {preStmt.close();}} catch (SQLException e) {e.printStackTrace();}}}

二、IRIS数据库分页查询(指定起始页)

 /**** 分页查询数据* @param dataBaseName  数据库名称* @param schemaName schema名称* @param tableName  表名称* @param sortingField  排序字段,主键或者索引字段* @param connection 数据库连接* @param startPosition  每一页的起始查询位置* @param singlePageLength  每页获取多少条数据* @return*/@Overridepublic Map<String, JSONObject> pagingQuerySample(String dataBaseName, String schemaName, String tableName,String sortingField, Object connection, long startPosition ,Integer singlePageLength) throws Exception{PreparedStatement preStmt = null;ResultSet rs = null;// 封装结果集Map<String, JSONObject> resultMap = new HashMap<>(16);// 查询sqlString sql = String.format("select *, %s from (select top all * from %s.%s ", "%VID", schemaName, tableName);if(StringUtil.isNotEmpty(sortingField)){sql = sql + String.format("order by %s ASC ", sortingField);}sql = sql + String.format(") where %s between %d and %d", "%VID", startPosition, startPosition + singlePageLength);try {if (StringUtil.isNotEmpty(sql))	{preStmt = ((Connection)connection).prepareStatement(sql,ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);rs = preStmt.executeQuery();resultMap = ResultSetUtil.getMapResultSetTeredata(rs, singlePageLength);}return resultMap;} catch (SQLException e) {e.printStackTrace();throw e;}finally {try{if(rs != null) {rs.close();}if(preStmt != null) {preStmt.close();}} catch (Exception e) {e.printStackTrace();}}}

这篇关于Cache和IRIS 数据库 分页查询(指定起始页)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/992280

相关文章

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

Android Paging 分页加载库使用实践

《AndroidPaging分页加载库使用实践》AndroidPaging库是Jetpack组件的一部分,它提供了一套完整的解决方案来处理大型数据集的分页加载,本文将深入探讨Paging库... 目录前言一、Paging 库概述二、Paging 3 核心组件1. PagingSource2. Pager3.

解密SQL查询语句执行的过程

《解密SQL查询语句执行的过程》文章讲解了SQL语句的执行流程,涵盖解析、优化、执行三个核心阶段,并介绍执行计划查看方法EXPLAIN,同时提出性能优化技巧如合理使用索引、避免SELECT*、JOIN... 目录1. SQL语句的基本结构2. SQL语句的执行过程3. SQL语句的执行计划4. 常见的性能优

Linux系统中查询JDK安装目录的几种常用方法

《Linux系统中查询JDK安装目录的几种常用方法》:本文主要介绍Linux系统中查询JDK安装目录的几种常用方法,方法分别是通过update-alternatives、Java命令、环境变量及目... 目录方法 1:通过update-alternatives查询(推荐)方法 2:检查所有已安装的 JDK方

虚拟机Centos7安装MySQL数据库实践

《虚拟机Centos7安装MySQL数据库实践》用户分享在虚拟机安装MySQL的全过程及常见问题解决方案,包括处理GPG密钥、修改密码策略、配置远程访问权限及防火墙设置,最终通过关闭防火墙和停止Net... 目录安装mysql数据库下载wget命令下载MySQL安装包安装MySQL安装MySQL服务安装完成

MySQL进行数据库审计的详细步骤和示例代码

《MySQL进行数据库审计的详细步骤和示例代码》数据库审计通过触发器、内置功能及第三方工具记录和监控数据库活动,确保安全、完整与合规,Java代码实现自动化日志记录,整合分析系统提升监控效率,本文给大... 目录一、数据库审计的基本概念二、使用触发器进行数据库审计1. 创建审计表2. 创建触发器三、Java

MyBatis-Plus通用中等、大量数据分批查询和处理方法

《MyBatis-Plus通用中等、大量数据分批查询和处理方法》文章介绍MyBatis-Plus分页查询处理,通过函数式接口与Lambda表达式实现通用逻辑,方法抽象但功能强大,建议扩展分批处理及流式... 目录函数式接口获取分页数据接口数据处理接口通用逻辑工具类使用方法简单查询自定义查询方法总结函数式接口

MySql基本查询之表的增删查改+聚合函数案例详解

《MySql基本查询之表的增删查改+聚合函数案例详解》本文详解SQL的CURD操作INSERT用于数据插入(单行/多行及冲突处理),SELECT实现数据检索(列选择、条件过滤、排序分页),UPDATE... 目录一、Create1.1 单行数据 + 全列插入1.2 多行数据 + 指定列插入1.3 插入否则更

MySQL深分页进行性能优化的常见方法

《MySQL深分页进行性能优化的常见方法》在Web应用中,分页查询是数据库操作中的常见需求,然而,在面对大型数据集时,深分页(deeppagination)却成为了性能优化的一个挑战,在本文中,我们将... 目录引言:深分页,真的只是“翻页慢”那么简单吗?一、背景介绍二、深分页的性能问题三、业务场景分析四、

SQL server数据库如何下载和安装

《SQLserver数据库如何下载和安装》本文指导如何下载安装SQLServer2022评估版及SSMS工具,涵盖安装配置、连接字符串设置、C#连接数据库方法和安全注意事项,如混合验证、参数化查... 目录第一步:打开官网下载对应文件第二步:程序安装配置第三部:安装工具SQL Server Manageme