Heim >Java >javaLernprogramm >Java-Implementierung der Beispielfreigabe für DB2-Paging-Abfragen

Java-Implementierung der Beispielfreigabe für DB2-Paging-Abfragen

黄舟
黄舟Original
2017-09-14 10:17:421781Durchsuche

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn