詳述DB2分頁查詢及Java實現的示例

博主說:有時候,我們需要對數據庫中現有的數據進行大量處理操作(例如表中的某個字段需要全部更新等),如果直接使用select * from tableName很容易出現問題,因此我們可以選擇分頁查詢,批量處理數據。

我們提供的服務有:網站制作、成都網站設計、微信公眾號開發、網站優化、網站認證、雨花ssl等。為上1000家企事業單位解決了網站和推廣的問題。提供周到的售前咨詢和貼心的售后服務,是有科學管理、有技術的雨花網站制作公司

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 的實現層中,我們實現了具體的分頁查詢操作,并在其中批量處理數據。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持創新互聯。

網站題目:詳述DB2分頁查詢及Java實現的示例
本文網址:http://m.kartarina.com/article36/jedhsg.html

成都網站建設公司_創新互聯,為您提供App開發品牌網站制作電子商務外貿網站建設動態網站

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都做網站
主站蜘蛛池模板: 亚洲国产精品无码久久青草| 亚洲国产成AV人天堂无码| 国产在线无码视频一区| 亚洲AV综合永久无码精品天堂| 无码里番纯肉h在线网站| 亚洲真人无码永久在线观看| 国产综合无码一区二区色蜜蜜| 亚洲精品无码Av人在线观看国产| 亚洲av无码有乱码在线观看| 中文字幕乱妇无码AV在线| 亚洲精品无码aⅴ中文字幕蜜桃| 无码办公室丝袜OL中文字幕| 无码乱人伦一区二区亚洲| 一本久道中文无码字幕av| 久久亚洲精品无码AV红樱桃 | 亚洲啪AV永久无码精品放毛片| 无码一区二区三区在线| 色AV永久无码影院AV| 国产精品va在线观看无码| 亚洲av成人无码网站…| 精品无码一区在线观看| 亚洲精品无码久久久影院相关影片| 亚洲a∨无码一区二区| 久久午夜无码鲁丝片秋霞| 久久久久琪琪去精品色无码| 伊人久久大香线蕉无码麻豆| 免费A级毛片无码A∨| 日韩AV无码中文无码不卡电影| 中文字幕无码日韩专区免费| 国产网红主播无码精品| 免费无码国产V片在线观看| a级毛片无码免费真人| 亚洲av无码偷拍在线观看| 亚洲精品无码久久久久APP| 无码人妻一区二区三区一| 69天堂人成无码麻豆免费视频| 人妻少妇伦在线无码专区视频| 日韩精品中文字幕无码一区| 亚洲av中文无码乱人伦在线咪咕| 精选观看中文字幕高清无码| 精品亚洲成α人无码成α在线观看|