当前位置: 首页 > news >正文

MyBatis懒加载数据(大批量数据处理)

使用范例


Cursor约定使用Iterator去懒加载数据,以时间换空间,非常适合处理通常无法容纳在内存中的数百万个项目查询。如果在 resultMap 中使用集合,则必须使用 resultMap 的 id 列对游标 SQL 查询进行排序(resultOrdered=“true”)。

//为了避免bug,手动管理一个session
try (SqlSession sqlSession = sqlSessionFactory.openSession()) {DDeviceShopIndexStatusMapper shopIndexStatusMapper = sqlSession.getMapper(DDeviceShopIndexStatusMapper.class);try (Cursor<DAlarmEventDTO> cursor = shopIndexStatusMapper.selectDevicesForShopClosed(commonProperties.getOpenShopStatus(), ABNORMAL.getCode())) {for (DAlarmEventDTO alarmEventDTO : cursor) {applicationContext.publishEvent(new DeviceShopClosedEvent(new Object(), alarmEventDTO));}} catch (IOException e) {log.error("shopStatusCheckJob cursor error:", e);}
}
============================
//方法定义
Cursor<DAlarmEventDTO> selectDevicesForShopClosed(@Param("shopStatus") List<String> shopStatus, @Param("status") Integer status);
============================
//xml写法与平常无异
<select id="selectDevicesForShopClosed" resultType="com.rome.device.monitor.admin.infrastructure.remote.dto.DAlarmEventDTO">select ddsb.device_key,....from d_device_detail dddleft join d_device_shop_bind ddsb on ddd.device_key = ddsb.device_key....where ....
</select>
http://www.lryc.cn/news/354922.html

相关文章:

  • MySQL--联合索引应用细节应用规范
  • 【spring boot+Lazy ORM+mysql】开发一个数据库管理系统实现对应数据库数据查看和修改
  • 知识分享:隔多久查询一次网贷大数据信用报告比较好?
  • 【Day8:JAVA字符串的学习】
  • jetcache缓存
  • SQLSyntaxErrorException: FUNCTION dbname.to_timestamp does not exist
  • Borel-Cantelli 引理
  • 算法训练营第四十一天 | LeetCode 509 斐波那契数列、LeetCode 70 爬楼梯、LeetCode 746 使用最小花费爬楼梯
  • 网络其他重要协议(DNS、ICMP、NAT)
  • 利用PyCSP3库(含大量全局约束)进行组合约束建模
  • 解决updateByExample时属性值异常的问题(部分属性值没有使用占位符?进行占位,而是变成了属性的名称)
  • [C++][algorithm][Eigen] 基于Eigen实现Softmax函数
  • 一招教大家,如何移除受保护的excel工作表的编辑权限限制?
  • Python 全栈体系【四阶】(五十三)
  • 民国漫画杂志《时代漫画》第27期.PDF
  • 图论(四)—最短路问题(Dijkstra)
  • 用友NC linkVoucher SQL注入漏洞复现
  • 部署Prometheus + Grafana实现监控数据指标
  • GEE27:遥感数据可用数据源计算及条带号制作
  • FURNet问题
  • 抖音小店怎么对接达人合作?达人带货的细节分享,附邀约达人话术
  • 迈向未来:Web3 技术开发的无限可能
  • Python应用开发——30天学习Streamlit Python包进行APP的构建(2)
  • Leecode热题100---46:全排列(递归)
  • Android 多语言
  • Thingsboard规则链:Message Type Filter节点详解
  • SQLI-labs-第二十五关和第二十五a关
  • Windows、Linux添加路由
  • Swift 初学者交心:在 Array 和 Set 之间我们该如何抉择?
  • C++ 类模板 函数模板