Home >Java >javaTutorial >Java implementation of DB2 paging query example sharing
This article mainly introduces examples detailing DB2 paging query and Java implementation. It has certain reference value. Interested friends can refer to it
The blogger said: Sometimes, we need To perform a large number of processing operations on the existing data in the database (for example, a certain field in the table needs to be completely updated, etc.), it is easy to cause problems if you directly use select * from tableName, so we can choose paging query and batch processing of data.
DB2
startNum: starting number
endNum: ending number
SQL statement
SELECT * FROM ( SELECT B.*, ROWNUMBER() OVER() AS TN FROM ( SELECT * FROM 表名 ) AS B ) AS A WHERE A.TN BETWEEN startNum AND endNum;
As shown above, this is the paging query statement of 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; } } } }At this point, we simulate Mapper.xml file, Dao layer and Service layer were mapped to the database, and paging query SQL statements were written in Mapper.xml. In particular, in the Service implementation layer, we implemented specific paging query operations and processed data in batches.
The above is the detailed content of Java implementation of DB2 paging query example sharing. For more information, please follow other related articles on the PHP Chinese website!