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

相关文章

房产证 不动产查询

陕西政务服务网(便民服务)陕西政务服务网(手机版?更直观)不动产权证书|不动产登记证明(电子证照)商品房合同备案查询权利人查询

关于如何更好管理好数据库的一点思考

本文尝试从数据库设计理论、ER图简介、性能优化、避免过度设计及权限管理方面进行思考阐述。 一、数据库范式 以下通过详细的示例说明数据库范式的概念,将逐步规范化一个例子,逐级说明每个范式的要求和变换过程。 示例:学生课程登记系统 初始表格如下: 学生ID学生姓名课程ID课程名称教师教师办公室1张三101数学王老师101室2李四102英语李老师102室3王五101数学王老师101室4赵六103物理陈

数据库期末复习知识点

A卷 1. 选择题(30') 2. 判断范式(10') 判断到第三范式 3. 程序填空(20') 4. 分析填空(15') 5. 写SQL(25') 5'一题 恶性 B卷 1. 单选(30') 2. 填空 (20') 3. 程序填空(20') 4. 写SQL(30') 知识点 第一章 数据库管理系统(DBMS)  主要功能 数据定义功能 (DDL, 数据定义语

通过高德api查询所有店铺地址信息

通过高德api查询所有店铺地址电话信息 需求:通过高德api查询所有店铺地址信息需求分析具体实现1、申请高德appkey2、下载types city 字典值3、具体代码调用 需求:通过高德api查询所有店铺地址信息 需求分析 查询现有高德api发现现有接口关键字搜索API服务地址: https://developer.amap.com/api/webservice/gui

给数据库的表添加字段

周五有一个需求是这样的: 原来数据库有一个表B,现在需要添加一个字段C,我把代码中增删改查部分进行了修改, 比如insert中也添入了字段C。 但没有考虑到一个问题,数据库的兼容性。因为之前的版本已经投入使用了,再升级的话,需要进行兼容处理,当时脑子都蒙了,转不过来,后来同事解决了这个问题。 现在想想,思路就是,把数据库的表结构存入文件中,如xxx.sql 实时更新该文件: CREAT

vue+elementui分页输入框回车与页面中@keyup.enter事件冲突解决

解决这个问题的思路只要判断事件源是哪个就好。el分页的回车触发事件是在按下时,抬起并不会再触发。而keyup.enter事件是在抬起时触发。 so,找不到分页的回车事件那就拿keyup.enter事件搞事情。只要判断这个抬起事件的$event中的锚点样式判断不等于分页特有的样式就可以了 @keyup.enter="allKeyup($event)" //页面上的//js中allKeyup(e

SQL Server中,查询数据库中有多少个表,以及数据库其余类型数据统计查询

sqlserver查询数据库中有多少个表 sql server 数表:select count(1) from sysobjects where xtype='U'数视图:select count(1) from sysobjects where xtype='V'数存储过程select count(1) from sysobjects where xtype='P' SE

SQL Server中,添加数据库到AlwaysOn高可用性组条件

1、将数据添加到AlwaysOn高可用性组,需要满足以下条件: 2、更多具体AlwaysOn设置,参考:https://msdn.microsoft.com/zh-cn/library/windows/apps/ff878487(v=sql.120).aspx 注:上述资源来自MSDN。

SQL Server中,用Restore DataBase把数据库还原到指定的路径

restore database 数据库名 from disk='备份文件路径' with move '数据库文件名' to '数据库文件放置路径', move '日志文件名' to '日志文件存放置路径' Go 如: restore database EaseWe from disk='H:\EaseWe.bak' with move 'Ease

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充;数据独立性高。DBMS 对数据的控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。 数据库技术研究领域:数据库管理系统软件的研发;数据库设计;数据库理论。数据模型要素 数据结构:描述数据库