## 一、背景

导出大量数据时,虚拟机频繁GC,内存耗尽,CPU爆满,可采用Mybatis数据流式读取进行优化。

## 二、JDBC三种读取方式:

1. 一次全部(默认):一次获取全部。

2. 流式:多次获取,一次一行。

3. 游标:多次获取,一次多行。

mybatis默认采取第一种。

## 三、实现

### 1. Business层

```java

//最终查询的List结果

List financePackageFutureList = new ArrayList<>();

financeOrderDao.seachDataList(financeOrderPackageRequestVO, new ResultHandler() {

@Override

public void handleResult(ResultContext extends FinancePackageFutureResponseVO> resultContext) {

/**回调处理逻辑 */

financePackageFutureList.add(resultContext.getResultObject());

}

});

```

### 2. Dao层

```java

/**

* 流式读取数据

* @param financeOrderPackageRequestVO 查询对象

* @param handler                      回调处理

*/

void

seachDataList(FinanceOrderPackageRequestVO

financeOrderPackageRequestVO,

ResultHandler handler);

```

### 3. Mapper层

```java

select i.created_date as createdDate, i.orde_order_inside_no as ordeOrderInsideNo from fina_finance_order_item_expense e

```

mybatis中mysql流式读取_MyBatis读取大量数据(流式读取)相关推荐

  1. mybatis查询mysql数据库很慢_mybatis查询大量数据库

    初识 MyBatis MyBatis 是第一个支持自定义 SQL.存储过程和高级映射的类持久框架.MyBatis 消除了大部分 JDBC 的样板代码.手动设置参数以及检索结果.MyBatis 能够支持 ...

  2. python怎么读取csv的一部分数据_python批量读取csv文件 如何用python将csv文件中的数据读取成数组...

    如何用python把多个csv文件数据处理后汇总到新csv文件你看这月光多温柔,小编转头还能看见你,一切从未坍塌. 可以用pandas读取数据,首先把文件方同一个文件价里,然后对当前文件价的所有内容循 ...

  3. mybatis中mysql转义讲解

    本文为博主原创,未经允许不得转载: 在mybatis中写sql的时候,遇到特殊字符在加载解析的时候,会进行转义,所以在mybatis中 写sql语句的时候,遇到特殊字符进行转义处理. 需要注意的是,转 ...

  4. python如何读取tfrecord_TFRecord格式存储数据与队列读取实例

    Tensor Flow官方网站上提供三种读取数据的方法 1. 预加载数据:在Tensor Flow图中定义常量或变量来保存所有数据,将数据直接嵌到数据图中,当训练数据较大时,很消耗内存. 如 x1=t ...

  5. php可以实现响应式吗,怎么实现Vue数据响应式

    这次给大家带来怎么实现Vue数据响应式,实现Vue数据响应式的注意事项有哪些,下面就是实战案例,一起来看一下. 前言 Vue的数据响应主要是依赖了Object.defineProperty(),那么整 ...

  6. 在mybatis用mysql的代码块_mybatis plus与mysql分库组件mycat的结合

    之前的文章简单介绍了一下mybatis plus:<使用Mybatis-plus代替原生Mybatis>.截止目前在项目中使用了一段时间的mybatis plus,再也没有写过sql,都用 ...

  7. mybatis中mysql ON DUPLICATE KEY UPDATE写法

    2019独角兽企业重金招聘Python工程师标准>>> <insert id="batchInsertFansInfo" parameterType=&qu ...

  8. java读取excrl模板填充数据,spring mvc 读取excel模板填充数据下载

    需求: 将订单信息导出到excel中,存在excel模板,需要向其中添加数据. 技术选型: 对于excel操作,使用apache poi包.到maven repository找poi最新的发行包. 搜 ...

  9. mybatis 中#与$的区别

    2019独角兽企业重金招聘Python工程师标准>>> MyBatis中#和$的区别 1. #将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号.如:order by #u ...

最新文章

  1. 电脑svchost进程占用内存
  2. Python配置pip国内镜像源
  3. 电机编码器调零步骤_BLDC电机换向方法解析
  4. iqc工作职责和工作内容_监理工程师工作职责
  5. android单选按钮空值,Android的 - 空指针异常的对话与单选按钮
  6. DataGridView 禁用自动生成列
  7. 多重背包(dp专题)
  8. 为什么把钱花在别人身上更幸福?
  9. 《C++游戏开发》笔记十三 平滑过渡的战争迷雾(一) 原理:Warcraft3地形拼接算法...
  10. 阿里云oss权限控制,上传下载测试
  11. AGV项目底层总结二
  12. 【黑灰产犯罪研究】恶意注册
  13. IKEv2的密钥计算方式
  14. JETT(一)-Excel模板转换器简介
  15. 心情札记 --- 人活着是为了天天开心快乐, 去憧憬和实现一切美好的事物
  16. Adobe全家桶功能介绍
  17. python外国人也用吗_再也不怕和老外交流了!我用python实现一个微信聊天翻译助手!...
  18. OTB数据集和VOT数据集融合跟踪算法接口示例
  19. Matlab2019 slrt(XPC)目标机U盘启动
  20. GSWiFi路由器苹果安卓手机辅助连接通用方法-网线版(图文教程)

热门文章

  1. 程序、进程以及线程的爱恨情仇
  2. 【数据结构-查找】2.字符串(逐步演绎过程,超级详解KMP算法)
  3. TensorFlow数据统计
  4. 为什么同样是上亿的并发,购票系统就要比电商系统技术挑战更大?
  5. 彻底理解 Spring 容器和应用上下文
  6. Tomcat maven 插件启动出现tomcat\conf\tomcat-users.xml cannot be read异常解决方法
  7. HTML自学教程--一天搞定HTML(总结)
  8. Java IO流之普通文件流和随机读写流区别
  9. 类对接口的实现不叫继承_Java多态的实现机制是什么,看完你就知道(值得收藏)...
  10. c++ map中用char数组_C开发实战-指针和字符串