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

相关文章

mysql线上查询之前要性能调优的技巧及示例

《mysql线上查询之前要性能调优的技巧及示例》文章介绍了查询优化的几种方法,包括使用索引、避免不必要的列和行、有效的JOIN策略、子查询和派生表的优化、查询提示和优化器提示等,这些方法可以帮助提高数... 目录避免不必要的列和行使用有效的JOIN策略使用子查询和派生表时要小心使用查询提示和优化器提示其他常

SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)

《SpringBoot使用Jasypt对YML文件配置内容加密的方法(数据库密码加密)》本文介绍了如何在SpringBoot项目中使用Jasypt对application.yml文件中的敏感信息(如数... 目录SpringBoot使用Jasypt对YML文件配置内容进行加密(例:数据库密码加密)前言一、J

Python调用Orator ORM进行数据库操作

《Python调用OratorORM进行数据库操作》OratorORM是一个功能丰富且灵活的PythonORM库,旨在简化数据库操作,它支持多种数据库并提供了简洁且直观的API,下面我们就... 目录Orator ORM 主要特点安装使用示例总结Orator ORM 是一个功能丰富且灵活的 python O

使用 sql-research-assistant进行 SQL 数据库研究的实战指南(代码实现演示)

《使用sql-research-assistant进行SQL数据库研究的实战指南(代码实现演示)》本文介绍了sql-research-assistant工具,该工具基于LangChain框架,集... 目录技术背景介绍核心原理解析代码实现演示安装和配置项目集成LangSmith 配置(可选)启动服务应用场景

SQL 中多表查询的常见连接方式详解

《SQL中多表查询的常见连接方式详解》本文介绍SQL中多表查询的常见连接方式,包括内连接(INNERJOIN)、左连接(LEFTJOIN)、右连接(RIGHTJOIN)、全外连接(FULLOUTER... 目录一、连接类型图表(ASCII 形式)二、前置代码(创建示例表)三、连接方式代码示例1. 内连接(I

使用Navicat工具比对两个数据库所有表结构的差异案例详解

《使用Navicat工具比对两个数据库所有表结构的差异案例详解》:本文主要介绍如何使用Navicat工具对比两个数据库test_old和test_new,并生成相应的DDLSQL语句,以便将te... 目录概要案例一、如图两个数据库test_old和test_new进行比较:二、开始比较总结概要公司存在多

轻松上手MYSQL之JSON函数实现高效数据查询与操作

《轻松上手MYSQL之JSON函数实现高效数据查询与操作》:本文主要介绍轻松上手MYSQL之JSON函数实现高效数据查询与操作的相关资料,MySQL提供了多个JSON函数,用于处理和查询JSON数... 目录一、jsON_EXTRACT 提取指定数据二、JSON_UNQUOTE 取消双引号三、JSON_KE

MySQL数据库函数之JSON_EXTRACT示例代码

《MySQL数据库函数之JSON_EXTRACT示例代码》:本文主要介绍MySQL数据库函数之JSON_EXTRACT的相关资料,JSON_EXTRACT()函数用于从JSON文档中提取值,支持对... 目录前言基本语法路径表达式示例示例 1: 提取简单值示例 2: 提取嵌套值示例 3: 提取数组中的值注意

一文教你使用Python实现本地分页

《一文教你使用Python实现本地分页》这篇文章主要为大家详细介绍了Python如何实现本地分页的算法,主要针对二级数据结构,文中的示例代码简洁易懂,有需要的小伙伴可以了解下... 在项目开发的过程中,遇到分页的第一页就展示大量的数据,导致前端列表加载展示的速度慢,所以需要在本地加入分页处理,把所有数据先放

查询SQL Server数据库服务器IP地址的多种有效方法

《查询SQLServer数据库服务器IP地址的多种有效方法》作为数据库管理员或开发人员,了解如何查询SQLServer数据库服务器的IP地址是一项重要技能,本文将介绍几种简单而有效的方法,帮助你轻松... 目录使用T-SQL查询方法1:使用系统函数方法2:使用系统视图使用SQL Server Configu