Prefácio
A consulta de streaming do mybatis é um pouco impopular e raramente usada em cenários reais. No entanto, é um método muito eficaz em alguns cenários especiais. Muitas pessoas nunca ouviram falar dele. Na verdade, não prestam muita atenção ao mybatis. A ideia do mybatis ainda é que uma interface dao corresponda a um sql no mapeador. A chave para o mybatis é como escrever sql e a otimização do sql;
O que é a consulta de streaming mybatis?
Ao usar mybatis como estrutura da camada de persistência, após a execução bem-sucedida da solicitação de consulta de dados por meio de mybatis, o conjunto de resultados retornado por mybatis não é uma coleção ou objeto, mas um iterador. O conjunto de resultados pode ser retirado percorrendo o iterador para evitar o uso único.A recuperação de grandes quantidades de dados ocupa muita memória.
Cursor
org.apache.ibatis.cursor.Cursor
A interface possui três métodos abstratos, a saber
-
isOpen() : Determina se o cursor está aberto;
-
isConsumed() : Determina se todos os resultados da consulta foram lidos;
-
getCurrentIndex() : Consulta a posição do índice dos dados lidos em todos os dados;
public interface Cursor<T> extends Closeable, Iterable<T> {
//判断cursor是否正处于打开状态
//当返回true,则表示cursor已经开始从数据库里刷新数据了;
boolean isOpen();
//判断查询结果是否全部读取完;
//当返回true,则表示查询sql匹配的全部数据都消费完了&#