Heim >Datenbank >MySQL-Tutorial >Wie kann man große JDBC-Ergebnismengen ohne „rs.absolute()' effizient paginieren?
Problem:
Sie müssen eine effiziente Paginierung für große Ergebnismengen implementieren JDBC ohne Verwendung von rs.absolute() oder rownum/limit Offset.
Ansatz:
Obwohl JDBC nativ keine Paginierungsunterstützung bietet, können Sie diese effizient implementieren, indem Sie Ihre SQL-Abfrage direkt ändern.
Lösung:
Verwenden Datenbankspezifische Paginierungsschlüsselwörter:
Bestimmte Datenbanken (z. B. MySQL, PostgreSQL) bieten paginierungsspezifische Schlüsselwörter wie LIMIT und OFFSET. Zum Beispiel:
SELECT * FROM data LIMIT 50 OFFSET 0;
Unterabfrage mit Zeilennummer (Oracle):
Oracle verfügt nicht über ein integriertes Paginierungsschlüsselwort. Stattdessen können Sie eine Unterabfrage mit der Pseudospalte ROWNUM verwenden:
SELECT * FROM ( SELECT sub_data.*, rownum rnum FROM data sub_data ) WHERE rnum BETWEEN 1 AND 50;
Vorteile der Datenbank-Paginierung:
Alternative Ansätze:
Das obige ist der detaillierte Inhalt vonWie kann man große JDBC-Ergebnismengen ohne „rs.absolute()' effizient paginieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!