详述 DB2 分页查询及 Java 实现的示例
博主说:有时候,我们需要对数据库中现有的数据进行大量处理操作(例如表中的某个字段需要全部更新等),如果直接使用select*fromtableName很容易出现问题,因此我们可以选择分页查询,批量处理数据。
DB2
- startNum:起始数
- endNum:结尾数
SQL语句
SELECT*FROM ( SELECTB.*,ROWNUMBER()OVER()ASTNFROM ( SELECT*FROM表名 )ASB )ASA WHEREA.TNBETWEENstartNumANDendNum;
如上所示,此即为DB2的分页查询语句。
Mapper
SELECT*FROM ( SELECTB.*,ROWNUMBER()OVER()ASTNFROM ( SELECT*FROMTBL_STORE )ASB )ASA WHEREA.TNBETWEEN#{startNum}AND#{endNum}
Java
/**
*Dao层代码
*/
@Repository("storeEntityDao")
publicinterfaceStoreEntityDao{
Listquery4encrypt(MapparamMap);
}
/**
*Service层接口代码
*/
publicinterfaceStoreEntityService{
publicvoidquery4encrypt();
}
/**
*Service层实现代码
*/
@Service("storeEntityService")
publicinterfaceStoreEntityServiceImplimplementsStoreEntityService{
@Override
publicvoidquery4encrypt(){
booleanflag=true;
LongstartNum=0L;
LongendNum=0L;
MapparamMap=newHashMap();
while(flag){
endNum=startNum+100;
paramMap.put("startNum",startNum);
paramMap.put("endNum",endNum);
ListstoreEntityList=StoreEntityDao.query4encrypt(paramMap);
if(storeEntityList!=null&&storeEntityList.size()>0){
//遍历加密数据
for(StoreEntitystoreEntity:storeEntityList){
//加密及持久化处理
}
}
if(storeEntityList!=null&&storeEntityList.size()>=100){
startNum=endNum++;
}else{
flag=false;
}
}
}
}
至此,我们模拟了数据库映射Mapper.xml文件、Dao层和Service层,并在Mapper.xml中书写了分页查询SQL语句。特别地,在Service的实现层中,我们实现了具体的分页查询操作,并在其中批量处理数据。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短