基本概念
流式查询 指的是查询成功后不是返回一个集合而是返回一个迭代器,应用每次从迭代器取一条查询结果。流式查询的好处是能够降低内存使用。
如果没有流式查询,我们想要从数据库取 1000 万条记录而又没有足够的内存时,就不得不分页查询,而分页查询效率取决于表设计,如果设计的不好,就无法执行高效的分页查询。因此流式查询是一个数据库访问框架必须具备的功能。
流式查询的过程当中,数据库连接是保持打开状态的,因此要注意的是:执行一个流式查询后,数据库访问框架就不负责关闭数据库连接了,需要应用在取完数据后自己关闭。
0.前提
注:迭代器使用需要保持sqlsession的链接才可以
1.SqlSessionFactory
2.利用事务的特性,程序执行完成才会关闭sqlsession
3.使用spring事务注解完成(慎用)
注:这种方式最简单,代码量也少逻辑也简单,但是因为spring注解事务特性只在外部调用时生效,本类调用还是不能正常使用迭代器
github地址
参考
小黄鸭编程社区https://mp.weixin.qq.com/s/4OnopF1uT7pz_5Y2MUPVtQ
blog.csdn.net/weixin_4266…
blog.csdn.net/jyxmust/art…