栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

详述 DB2 分页查询及 Java 实现的示例

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

详述 DB2 分页查询及 Java 实现的示例

博主说:有时候,我们需要对数据库中现有的数据进行大量处理操作(例如表中的某个字段需要全部更新等),如果直接使用select * from tableName很容易出现问题,因此我们可以选择分页查询,批量处理数据。

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




 
  
  
  
  
 

 
  
  SELECT * FROM 
  (
  SELECt B.*, ROWNUMBER() OVER() AS TN FROM  
  (
  SELECt * FROM TBL_STORE
  ) AS B
  ) AS A 
  WHERe A.TN BETWEEN #{startNum} AND #{endNum}
 

Java


@Repository("storeEntityDao")
public interface StoreEntityDao {
  List query4encrypt(Map paramMap);
}


public interface StoreEntityService {
  public void query4encrypt();
}


@Service("storeEntityService")
public interface StoreEntityServiceImpl implements StoreEntityService {
   @Override
  public void query4encrypt() {
    boolean flag = true;
    Long startNum = 0L;
    Long endNum = 0L;
    Map paramMap = new HashMap();
    while (flag) {
      endNum = startNum + 100;
      paramMap.put("startNum", startNum);
      paramMap.put("endNum", endNum);
      List 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 的实现层中,我们实现了具体的分页查询操作,并在其中批量处理数据。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持考高分网。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/144288.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号