Heim Backend-Entwicklung C#.Net-Tutorial Implementieren Sie eine Paging-Abfrage mit Hibernate

Implementieren Sie eine Paging-Abfrage mit Hibernate

Dec 20, 2016 pm 04:39 PM
Oracle hibernate

Zum Beispiel:
100 Datensätze ab dem 20.000sten abrufen

Code:
Abfrage q = session.createQuery("from Cat as c");
q.setFirstResult (20000);
q.setMaxResults(100);
List l = q.list();

Wie implementiert die unterste Ebene von Hibernate Paging? Tatsächlich ist die Abfrage von Hibernate in der Klasse net.sf.hibernate.loader.Loader definiert. Wenn Sie den Code dieser Klasse sorgfältig lesen, können Sie das Problem vollständig verstehen.

Zeile 480 des Loader-Quellcodes von Hibernate2.0.3 lautet wie folgt:

Code:
if (useLimit) sql = dialect.getLimitString(sql);
PreparedStatement st = session.getBatcher().prepareQueryStatement(sql,
scrollable);


Wenn die entsprechende Datenbank eine SQL-Anweisung definiert, die Abfragedatensätze begrenzt, verwenden Sie direkt die SQL-Anweisung der jeweiligen Datenbank.
 
 Dann schauen Sie sich net.sf.hibernate.dialect.MySQLDialect an:
 
  Code:
 public boolean unterstütztLimit() {
  return true;
  }
 public String getLimitString(String sql) {
 StringBuffer pagingSelect = new StringBuffer(100);
  pagingSelect.append(sql);
  pagingSelect.append(" limit ?, ?");
return pagingSelect. toString (); {
return true;
public String getLimitString(String sql) {
StringBuffer pagingSelect = new StringBuffer(100); row_.*, rownum rownum_
from ( ");
pagingSelect.append(sql);
pagingSelect.append(" ) row_ where rownum <= ?) where rownum_ > ?");
    return pagingSelect.toString(); Die rownum der Abfrageanweisung der Ebene Bestellung nach kann nicht unterstützt werden.
 
Darüber hinaus unterstützen Interbase, PostgreSQL und HSQL auch Paging-SQL-Anweisungen. Sie können im entsprechenden Dialekt darauf verweisen.
 
Wenn die Datenbank keine Paging-SQL-Anweisungen unterstützt, ist gemäß dem #hibernate.jdbc.use_scrollable_resultset true in der Konfigurationsdatei der Standardwert true. Wenn Sie nicht false angeben, verwendet Hibernate das scrollableresult von JDBC2.0, um es zu implementieren, schauen Sie sich die folgende Zeile 430 von Loader an:

Code:
if ( session.getFactory().useScrollableResultSets() ) {
// wir können gehe direkt zur ersten erforderlichen Zeile
rs.absolute(firstRow);
   }
   else {
    // wir müssen zeilenweise Schritt für Schritt durch die Zeilen gehen (langsam)
   for ( int m=0; m   }
 
Wenn scrollbare Ergebnisse unterstützt werden, verwenden Sie die absolute Methode von ResultSet, um direkt zum Startpunkt der Abfrage zu gelangen . Wenn nicht, verwenden Sie eine Schleifenanweisung und rs.next, um Stück für Stück weiterzumachen.
 
Es ist ersichtlich, dass Hibernate eine große Flexibilität bei Abfrage- und Paging-Vorgängen bietet. Wenn dies nicht funktioniert, versuchen Sie es mit Scrollable Arbeit, schließlich verwenden Sie die Methode rset.next() zum Verschieben.
 
Einer der Vorteile der Verwendung von Hibernate im Abfrage-Paging-Code besteht darin, dass es nicht nur die Leistung des Abfrage-Pagings berücksichtigt, sondern auch die Portabilität des Codes zwischen verschiedenen Datenbanken gewährleistet.

Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Beste grafische Einstellungen
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. So reparieren Sie Audio, wenn Sie niemanden hören können
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Wie man alles in Myrise freischaltet
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

So integrieren Sie Hibernate in ein SpringBoot-Projekt So integrieren Sie Hibernate in ein SpringBoot-Projekt May 18, 2023 am 09:49 AM

Hibernate in das SpringBoot-Projekt integrieren Vorwort Hibernate ist ein beliebtes ORM-Framework (Object Relational Mapping), das Java-Objekte Datenbanktabellen zuordnen kann, um Persistenzvorgänge zu erleichtern. Im SpringBoot-Projekt kann uns die Integration von Hibernate dabei helfen, Datenbankoperationen einfacher durchzuführen. In diesem Artikel wird die Integration von Hibernate in das SpringBoot-Projekt vorgestellt und entsprechende Beispiele bereitgestellt. 1.Abhängigkeiten einführenFügen Sie die folgenden Abhängigkeiten in die Datei pom.xml ein: org.springframework.bootspring-boot-starter-data-jpam

Java-Fehler: Ruhezustandsfehler, wie man damit umgeht und sie vermeidet Java-Fehler: Ruhezustandsfehler, wie man damit umgeht und sie vermeidet Jun 25, 2023 am 09:09 AM

Java ist eine objektorientierte Programmiersprache, die im Bereich der Softwareentwicklung weit verbreitet ist. Hibernate ist ein beliebtes Java-Persistenz-Framework, das eine einfache und effiziente Möglichkeit bietet, die Persistenz von Java-Objekten zu verwalten. Während des Entwicklungsprozesses treten jedoch häufig Hibernate-Fehler auf, die dazu führen können, dass das Programm abnormal beendet wird oder instabil wird. Der Umgang mit und die Vermeidung von Hibernate-Fehlern ist zu einer Fähigkeit geworden, die Java-Entwickler beherrschen müssen. In diesem Artikel werden einige gängige Hib vorgestellt

Was ist die Zuordnungsmethode für Eins-zu-Viele- und Viele-zu-Viele-Beziehungen in Java Hibernate? Was ist die Zuordnungsmethode für Eins-zu-Viele- und Viele-zu-Viele-Beziehungen in Java Hibernate? May 27, 2023 pm 05:06 PM

Hibernate ist ein hervorragendes ORM-Framework, das den Datenzugriff zwischen Java-Anwendungen und relationalen Datenbanken vereinfacht. In Hibernate können wir Eins-zu-Viele- und Viele-zu-Viele-Beziehungen verwenden, um komplexe Datenmodelle zu verarbeiten. Die Eins-zu-Viele-Beziehung von Hibernate In Hibernate bedeutet eine Eins-zu-Viele-Beziehung, dass eine Entitätsklasse mehreren anderen Entitätsklassen entspricht. Beispielsweise kann eine Bestellung mehreren Bestellpositionen (OrderItem) entsprechen, und ein Benutzer (User) kann mehreren Bestellungen (Order) entsprechen. Um eine Eins-zu-Viele-Beziehung in Hibernate zu implementieren, müssen Sie in der zu speichernden Entitätsklasse ein Sammlungsattribut definieren

Was sind die Unterschiede zwischen Hibernate und Mybatis? Was sind die Unterschiede zwischen Hibernate und Mybatis? Jan 03, 2024 pm 03:35 PM

Die Unterschiede zwischen Hibernate und Mybatis: 1. Implementierungsmethode; 3. Vergleich der Objektverwaltung; Detaillierte Einführung: 1. Implementierungsmethode: Hibernate ist eine vollständige Objekt-/Relational-Mapping-Lösung, die Objekte Datenbanktabellen zuordnet, während MyBatis von Entwicklern das manuelle Schreiben von SQL-Anweisungen und ResultMap erfordert. 2. Leistung: Hibernate ist in Bezug auf die Entwicklungsgeschwindigkeit schneller MyBatis, weil Hibernate die DAO-Ebene usw. vereinfacht.

Einführung in das Hibernate-Framework in der Java-Sprache Einführung in das Hibernate-Framework in der Java-Sprache Jun 10, 2023 am 11:35 AM

Hibernate ist ein Open-Source-ORM-Framework, das die Datenzuordnung zwischen relationalen Datenbanken und Java-Programmen miteinander verbindet und so Entwicklern den Zugriff auf Daten in der Datenbank erleichtert. Die Verwendung des Hibernate-Frameworks kann den Aufwand beim Schreiben von SQL-Anweisungen erheblich reduzieren und die Entwicklungseffizienz und Wiederverwendbarkeit von Anwendungen verbessern. Lassen Sie uns das Hibernate-Framework unter folgenden Gesichtspunkten vorstellen. 1. Vorteile des Hibernate-Frameworks: objektrelationale Zuordnung, Ausblenden von Datenbankzugriffsdetails, Ermöglichen der Entwicklung

Wie führe ich Masseneinfügungsaktualisierungsvorgänge im Ruhezustand durch? Wie führe ich Masseneinfügungsaktualisierungsvorgänge im Ruhezustand durch? Aug 27, 2023 pm 11:17 PM

In diesem Artikel erfahren Sie, wie Sie Masseneinfügungen/-aktualisierungen im Ruhezustand durchführen. Wann immer wir eine SQL-Anweisung ausführen, führen wir dies durch einen Netzwerkaufruf an die Datenbank durch. Wenn wir nun 10 Einträge in die Datenbanktabelle einfügen müssen, müssen wir 10 Netzwerkaufrufe durchführen. Stattdessen können wir Netzwerkaufrufe mithilfe der Stapelverarbeitung optimieren. Durch die Stapelverarbeitung können wir eine Reihe von SQL-Anweisungen in einem einzigen Netzwerkaufruf ausführen. Um dies zu verstehen und umzusetzen, definieren wir unsere Entität: @EntitypublicclassParent{@Id@GeneratedValue(strategy=GenerationType.AUTO)

Wie funktioniert der Second-Level-Cache von Hibernate? Wie funktioniert der Second-Level-Cache von Hibernate? Sep 14, 2023 pm 07:45 PM

Caching trägt dazu bei, Datenbanknetzwerkaufrufe beim Ausführen von Abfragen zu reduzieren. Cache- und Sitzungsverknüpfung der Ebene 1. Es wird implizit implementiert. Der Cache der ersten Ebene existiert, bis das Sitzungsobjekt existiert. Sobald das Sitzungsobjekt beendet/geschlossen ist, sind keine zwischengespeicherten Objekte mehr vorhanden. Der Cache der zweiten Ebene funktioniert für mehrere Sitzungsobjekte. Es ist mit der Session Factory verknüpft. Cache-Objekte der zweiten Ebene stehen allen Sitzungen über eine einzige Sitzungsfabrik zur Verfügung. Diese Cache-Objekte werden beendet, wenn eine bestimmte Sitzungsfabrik geschlossen wird. Um den Second-Level-Cache zu implementieren, müssen wir die folgenden Abhängigkeiten hinzufügen, um den Second-Level-Cache zu verwenden. <!--https://mvnrepository.com/artifact/net.sf.ehcache/ehcache--><de

Vertiefendes Verständnis des Java-Framework-Technologie-Stacks: Entdecken Sie gängige Java-Frameworks wie Spring MVC, Hibernate, MyBatis usw. Vertiefendes Verständnis des Java-Framework-Technologie-Stacks: Entdecken Sie gängige Java-Frameworks wie Spring MVC, Hibernate, MyBatis usw. Dec 26, 2023 pm 12:50 PM

Java-Framework-Technologie-Stack: Einführung häufig verwendeter Java-Frameworks wie SpringMVC, Hibernate, MyBatis usw. Mit der kontinuierlichen Entwicklung von Java wurden immer mehr Frameworks entwickelt, um den Entwicklungsprozess zu vereinfachen. Unter ihnen sind SpringMVC, Hibernate, MyBatis usw. eines der am häufigsten verwendeten Frameworks in der Java-Entwicklung. In diesem Artikel werden die grundlegenden Konzepte und die Verwendung dieser Frameworks vorgestellt, um den Lesern zu helfen, diese Frameworks besser zu verstehen und anzuwenden. Lassen Sie uns zunächst Sp vorstellen

See all articles