首页 技术 正文
技术 2022年11月14日
0 收藏 644 点赞 3,077 浏览 2123 个字

文章来源:嗨学网 敏而好学论坛www.piaodoo.com 欢迎大家相互学习

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

DB2

  • startNum:起始数
  • endNum:结尾数

SQL 语句


SELECT * FROM(SELECT B.*, ROWNUMBER() OVER() AS TN FROM(SELECT * FROM 表名) AS B) AS AWHERE 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 的实现层中,我们实现了具体的分页查询操作,并在其中批量处理数据。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持敏而好学论坛/嗨学网。

原文地址是:http://www.piaodoo.com/thread-13249-1-1.html 丝袜控www.txdah.com 131www.buzc.org学习之外可赏心悦目有助更好地学习!

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:9,085
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,560
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,409
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,182
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,819
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,902