详述 DB2 分页查询及 Java 实现的示例_java - JAVA
文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习
博主说:有时候,我们需要对数据库中现有的数据进行大量处理操作(例如表中的某个字段需要全部更新等),如果直接使用select * from tableName很容易出现问题,因此我们可以选择分页查询,批量处理数据。
DB2
- startNum:起始数
- endNum:结尾数
SQL 语句
SELECT * FROM ( SELECT B.*, ROWNUMBER() OVER() AS TN FROM ( SELECT * FROM 表名 ) AS B ) AS A WHERE A.TN BETWEEN startNum AND endNum;
如上所示,此即为 DB2 的分页查询语句。
Mapper
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.hit.store.dao.StoreEntityDao" >
<resultMap id="BaseResultMap" type="StoreEntity" >
<id column="ID" property="id" jdbcType="BIGINT" />
<result column="CREATE_TIME" property="createTime" jdbcType="TIMESTAMP" />
<result column="OWNER" property="owner" jdbcType="VARCHAR" />
<result column="DESCRIPTION" property="description" jdbcType="VARCHAR" />
</resultMap>
<select id="query4encrypt" parameterType="Map" resultMap="BaseResultMap">
<!--- 在映射文件中 SQL 语句末尾不应该加分号,防止解析错误 --->
SELECT * FROM
(
SELECT B.*, ROWNUMBER() OVER() AS TN FROM
(
SELECT * FROM TBL_STORE
) AS B
) AS A
WHERE A.TN BETWEEN #{startNum} AND #{endNum}
</select>
</mapper>
Java
/**
* Dao 层代码
*/
@Repository("storeEntityDao")
public interface StoreEntityDao {
List<StoreEntity> query4encrypt(Map<String, Object> paramMap);
}
/**
* Service 层接口代码
*/
public interface StoreEntityService {
public void query4encrypt();
}
/**
* Service 层实现代码
*/
@Service("storeEntityService")
public interface StoreEntityServiceImpl implements StoreEntityService {
@Override
public void query4encrypt() {
boolean flag = true;
Long startNum = 0L;
Long endNum = 0L;
Map<String, Object> paramMap = new HashMap<String, Object>();
while (flag) {
endNum = startNum + 100;
paramMap.put("startNum", startNum);
paramMap.put("endNum", endNum);
List<StoreEntity> storeEntityList = StoreEntityDao.query4encrypt(paramMap);
if (storeEntityList != null && storeEntityList.size() > 0) {
// 遍历加密数据
for (StoreEntity storeEntity : storeEntityList) {
// 加密及持久化处理
}
}
if (storeEntityList != null && storeEntityList.size() >= 100) {
startNum = endNum++;
} else {
flag = false;
}
}
}
}
至此,我们模拟了数据库映射 Mapper.xml 文件、Dao 层和 Service 层,并在 Mapper.xml 中书写了分页查询 SQL 语句。特别地,在 Service 的实现层中,我们实现了具体的分页查询操作,并在其中批量处理数据。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持敏而好学论坛/嗨学网。
原文地址是:http://www.piaodoo.com/thread-13249-1-1.html 丝袜控www.txdah.com 131www.buzc.org学习之外可赏心悦目有助更好地学习!
详述 DB2 分页查询及 Java 实现的示例_java - JAVA的更多相关文章
- 编译运行第一个Java程序——通过示例学习Java编程3
作者:CHAITANYA SINGH 来源:https://www.koofun.com//pro/kfpostsdetail?kfpostsid=13 在本教程中,我们将了解如何编写.编译和运行Ja ...
- 测试分页查询出数据并分文件导出[java工程]
package cn.shiyanjun.test; import java.util.ArrayList; import java.util.List; public class ExcelTest ...
- DB2分页查询SQL
select * from (select row_number() over() as rown,tpag.* from(SELECT int(COALESCE(列名1,0)),COALESCE(列 ...
- DB2分页查询简单示例
select * from ( select a.* ,rownumber() over(order by create_time desc) as rowid from ( select * fro ...
- Java运算符——通过示例学习Java编程(6)
作者:CHAITANYA SINGH 来源:https://www.koofun.com/pro/kfpostsdetail?kfpostsid=17 运算符是表示动作的字符,例如+是表示加法的算 ...
- 数据库MySQL-Oracle-DB2-SQLServer分页查询
1. MySQL分页查询 (1)关键字: LIMIT beginIndex, maxRow (2)示例: LIMIT子句可以用来限制由SELECT语句返回过来的数据数量,它有一个或两个参数. 如果给出 ...
- Hibernate和Struts分页查询
分页查询数据库方法 /** * 分页查询方法 * @param sql,pageNO,maxResult * @return List */ public List<Object> que ...
- DB2分页
前言 最近在做一个DB2的项目,遇到分页处理的设计时开始犯难.以前一直采用MySQL作为项目数据库,其中的Limit关键字非常人性化,MySQL把分页的处理逻辑封装到了数据库的核心中,使得做查询设计时 ...
- 【java】分页查询实体类
package com.dmsd.itoo.tool.pageModel; import java.io.Serializable; import java.util.HashMap; import ...
随机推荐
- WPF Knowledge Points - 默认视图(DefaultView),CollectionSourceView,CollectionView的区别
这些天一直在做一些关于Treeview的事情,想写出来一些用法和心得.说到集合对象的显示和表现,CollectionSourceView和CollectionView有着至关重要的作用,所以在写Tre ...
- Python 笔试集(1):关于 Python 链式赋值的坑
前言 Python 的链式赋值是一种简易型批量赋值语句,一行代码即可为多个变量同时进行赋值. 例如: x = y = z = 1 链式赋值是一种非常优雅的赋值方式,简单.高效且实用.但同时它也是一个危 ...
- object Object {} any unknown
object: 除了primitive(boolean null number string undefined bigint symbol)的类型 Object: Object和any很像 ,Obj ...
- npm link的作用
语法: 1. 在一个包目录下npm link (把当前的包目录软连接到global folder里面,把二进制文件也软连接到global的bin里面 这个prefix可以用npm config ls ...
- 使用Postman对HTTP接口进行功能测试
一.工具说明 Postman是一种网页调试与发送网页http请求的工具.我们可以用来很方便的模拟get或者post或者其他方式的请求来调试接口. 二.应用场景 1.Get请求 get请求通过接口参数拼 ...
- bigdata数据分析(二):关闭防火墙&安装telnet
先检查CentOS7.0是否已经安装以下两个安装包:telnet-server.xinetd.命令如下: rpm -qa telnet-server rpm -qa xinetd 如果没有安装,则先安 ...
- [19/10/16-星期三] Python中的模块和包、异常、操作文件
一.模块 # 模块(module) # 模块化,模块化指将一个完整的程序分解为一个一个小的模块 # 通过将模块组合,来搭建出一个完整的程序 # 不采用模块化,统一将所有的代码编写到一个文件中 # 采用 ...
- Quartz任务调度的测试Demo1(含有配置文件的demo)
Quartz是一个作业任务调度的框架,所在项目组中“消息推送模块”使用到此框架,于是写个demo熟悉下quart的用法: 使用Spring框架来集成Quartz的任务调度任务. 1.搭建Spring框 ...
- Julia出现错误ERROR: LoadError: syntax: try without catch or finally
因项目要求进行机器学习数据可视化,要求尝试使用Julia,在此,记录下遇到的坑,仅为记录效果.后续陆续更新. 问题一:关于LightML库中的坑:ERROR: LoadError: syntax: t ...
- Mybatis-学习笔记(6)Mybatis的事务管理机制
1.什么是事务. 多个数据库原子访问应该被绑定成一个整体,这就是事务.事务是一个最小的逻辑执行单元,整个事务不能分开执行,要么同时执行,要么同时放弃执行. 事务的4个特性:原子性.一致性.隔离性.持续 ...