Cet article présente principalement des exemples détaillant la requête de pagination DB2 et l'implémentation Java. Il a une certaine valeur de référence. Les amis intéressés peuvent s'y référer
Le blogueur a déclaré : Parfois, nous devons effectuer un grand nombre d'opérations de traitement. sur les données existantes dans la base de données (par exemple, un certain champ de la table doit être complètement mis à jour, etc.), il est facile de causer des problèmes si vous utilisez directement select * from tableName, afin que nous puissions choisir la requête de pagination et le lot traitement des données.
DB2
startNum : numéro de début
endNum : numéro de fin
Instruction SQL
SELECT * FROM ( SELECT B.*, ROWNUMBER() OVER() AS TN FROM ( SELECT * FROM 表名 ) AS B ) AS A WHERE A.TN BETWEEN startNum AND endNum;
Comme indiqué ci-dessus, il s'agit de l'instruction de requête de pagination de 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; } } } }
Jusqu'à présent, nous avons simulé le fichier Mapper.xml de mappage de base de données, la couche Dao et la couche Service, et écrit des instructions SQL de requête de pagination dans Mapper.xml. En particulier, dans la couche d'implémentation du service, nous avons implémenté des opérations de requête de pagination spécifiques et traité les données par lots.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!