Heim >Java >javaLernprogramm >Java-Implementierung der Beispielfreigabe für DB2-Paging-Abfragen
In diesem Artikel werden hauptsächlich Beispiele zur DB2-Paging-Abfrage und zur Java-Implementierung vorgestellt. Interessierte Freunde können darauf verweisen.
Der Blogger sagte: Manchmal müssen wir eine große Anzahl von Verarbeitungsvorgängen durchführen Abhängig von den vorhandenen Daten in der Datenbank (z. B. muss ein bestimmtes Feld in der Tabelle vollständig aktualisiert werden usw.) kann es leicht zu Problemen kommen, wenn Sie select * from tableName direkt verwenden, damit wir Paging-Abfrage und Batch auswählen können Verarbeitung von Daten.
DB2
startNum: Startnummer
endNum: Endnummer
SQL-Anweisung
SELECT * FROM ( SELECT B.*, ROWNUMBER() OVER() AS TN FROM ( SELECT * FROM 表名 ) AS B ) AS A WHERE A.TN BETWEEN startNum AND endNum;
Wie oben gezeigt, ist dies die Paging-Abfrageanweisung von 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; } } } }
Bisher haben wir die Datenbankzuordnungsdatei Mapper.xml, die Dao-Schicht und die Serviceschicht simuliert und SQL-Anweisungen für Paging-Abfragen in Mapper.xml geschrieben. Insbesondere haben wir in der Service-Implementierungsschicht spezifische Paging-Abfragevorgänge implementiert und Daten stapelweise verarbeitet.
Das obige ist der detaillierte Inhalt vonJava-Implementierung der Beispielfreigabe für DB2-Paging-Abfragen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!