Die Streaming-Abfrage von SpringBoot+Mybatis ist zu leistungsstark!

Vorwort

Die Streaming-Abfrage von Mybatis ist etwas unbeliebt und es gibt relativ wenige tatsächliche Anwendungsszenarien, aber in einigen speziellen Szenarien ist sie eine sehr effektive Methode. Viele Leute haben noch nichts davon gehört. Tatsächlich schenken sie Mybatis nicht viel Aufmerksamkeit. Die Idee von Mybatis ist immer noch, dass eine Dao-Schnittstelle einem SQL im Mapper entspricht. Der Schlüssel zu Mybatis liegt darin, wie man SQL schreibt und die Optimierung von SQL;

Was ist eine Mybatis-Streaming-Abfrage?

Wenn Sie mybatis als Framework der Persistenzschicht verwenden, ist die von mybatis zurückgegebene Ergebnismenge nach erfolgreicher Ausführung der Anforderung zum Abfragen von Daten über mybatis keine Sammlung oder kein Objekt, sondern ein Iterator. Die Ergebnismenge kann durch Durchlaufen des Iterators abgerufen werden um eine einmalige Verwendung zu vermeiden. Das Herausnehmen einer großen Datenmenge nimmt zu viel Speicher in Anspruch.

Mauszeiger

org.apache.ibatis.cursor.CursorDie Schnittstelle verfügt über drei abstrakte Methoden, nämlich

  • isOpen()  : Bestimmen Sie, ob der Cursor geöffnet ist.

  • isConsumed()  : Bestimmen Sie, ob alle Abfrageergebnisse gelesen wurden;

  • getCurrentIndex()  : Fragen Sie die Indexposition der gelesenen Daten in allen Daten ab.

public interface Cursor<T> extends Closeable, Iterable<T> {
 //判断cursor是否正处于打开状态
 //当返回true,则表示cursor已经开始从数据库里刷新数据了;
  boolean isOpen();
  //判断查询结果是否全部读取完;
  //当返回true,则表示查询sql匹配的全部数据都消费完了&#

おすすめ

転載: blog.csdn.net/WXF_Sir/article/details/131280437