5.7 mybatis之ResultHandler流式处理数据

文章目录


当一次性从数据库中查询大量数据时,由于结果集非常大,容易导致内存OOM,此时可以采用 分页查询或者可以利用 Mybatis 中的 ResultHandler 来实现流式输出,分页查询前面章节已经介绍过了,下面看下mybatis如何利用流式输出的,流式输出就像游标一样,一条条的处理目标结果集。

Mybatis 中的 ResultHandler 相当于数据结果集的处理器,它是一个回调函数(Callback),用来处理每一行数据的结果,这个回调函数可以在查询结果处理到一定量时触发,对结果集数据进行定制化处理。

ResultHandler 的使用可以大幅提升数据处理的效率,当我们需要处理大量的数据时,一般会使用 ResultHandler 来进行结果的处理,避免一次查询就全部返回结果,浪费内存资源或造成 OOM。

下面我们看下如何利用ResultHandler一条一条的数据处理

还是以下面的PERSON表为例
在这里插入图片描述
我们要查询persion_id大于多少的数据,对应的mapper文件如下所示

<resultMap id="resultMap1" type="com.lzj.bean.Person">
    <result column="PERSON_ID" property="id"></result>
    <result column="PERSON_NAME" property="name"></result>
    <result column="PERSON_AGE" property="age"></result>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值