Detaillierte Erklärung der reinen SQL-Anweisungsmethode basierend auf JPQL

Detaillierte Erklärung der reinen SQL-Anweisungsmethode basierend auf JPQL

JPQL steht für Java Persistence Query Language.

Basierend auf der EJB Query Language (EJB QL), die erstmals in EJB 2.0 eingeführt wurde, ist die Java Persistence Query Language (JPQL) eine portable Abfragesprache, die SQL-Syntax und einfache Abfragesemantik in Form von objektorientierten Ausdruckssprachenausdrücken miteinander verbindet. In dieser Sprache geschriebene Abfragen sind portierbar und können auf allen gängigen Datenbankservern in SQL kompiliert werden.

Seine Funktionen ähneln denen nativer SQL-Anweisungen und sind vollständig objektorientiert. Der Zugriff erfolgt über Klassennamen und Attribute statt über Tabellennamen und Tabellenattribute.

Um JPQL zu verwenden, müssen Sie die SQL-Anweisung so ändern, dass sie der HQL-Anweisung ähnelt. SQL fragt die Datenbank ab, während JPQL Objekte und Attribute abfragt und die Syntax etwas anders ist. Für einige Abfragen, die nicht in JPQL geschrieben werden können, ist es bequemer, sie in nativem SQL zu schreiben.

Hier ist ein Beispiel. Beachten Sie den Unterschied in der Syntax:

JPQL-Abfrage

@PersistenceContext
geschützter EntityManager em;

öffentliche Liste<Video> findVideoList1() {
  String hql = "aus Video sortiert nach ID desc";
  Abfrage Abfrage = em.createQuery(hql);
  Liste<Video> Ergebnis = query.getResultList();
  em.klar();
  Ergebnis zurückgeben;
}

SQL-Abfrage

Abfrage der Daten der letzten 7 Tage

öffentliche Liste<Video> findVideoList2() {
  Liste<Video> Ergebnis = (Liste<Video>) em.createNativeQuery
    ("Wählen Sie * aus db_video, wobei date_sub (curdate (), Intervall 6 Tage) <= date (Datum) sortiert nach Datum desc", Video.Klasse)
    .getResultList();
  Ergebnis zurückgeben;
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • JPA verwendet JPQL-Anweisungen zum Hinzufügen, Löschen, Ändern und Abfragen
  • Detailliertes Installationstutorial zur dekomprimierten Version von mysql5.7.19 (mit rein geknackter chinesischer Version von SQLYog)
  • Einführung und Anwendungsbeispiele von CodernityDB, einer in reinem Python entwickelten NoSQL-Datenbank
  • Detaillierte Erklärung zum Importieren reiner IP-Daten in MySQL in 3 Schritten
  • Wunderschöne Flash-Diashow und SQL-Tag-Tutorial, geschrieben mit reinem CSS+DIV!
  • Unterschiede zwischen den SQL-Löschanweisungen DROP, TRUNCATE und DELETE
  • Die Mybatis-plus-Konfigurationskonsole druckt die vollständige SQL-Anweisung mit Parametern
  • Installieren Sie das MyBatis Log Plugin-Plugin in IDEA und führen Sie die mybatis-SQL-Anweisung aus (empfohlen)

<<:  Detaillierte Analyse des Linux-NFS-Mechanismus anhand von Fällen

>>:  Der Quellcode zeigt, warum Vue2 Daten und Methoden direkt abrufen kann

Artikel empfehlen

Pull-Down-Aktualisierung und Pull-Up-Ladekomponenten basierend auf Vue-Kapselung

Basierend auf Vue und nativer JavaScript-Kapselun...

So verbergen und entfernen Sie Bildlaufleisten in HTML

1. HTML-Tags mit Attributen XML/HTML-CodeInhalt i...

So konfigurieren Sie Nginx zur Unterstützung von IPv6 unter Linux

1. Überprüfen Sie, ob das vorhandene Nginx IPv6 u...

Lösung für die Ineffektivität der flexiblen Layoutbreite in CSS3

In Projekten wird häufig das zweispaltige Layout ...

Linux Yum-Paketverwaltungsmethode

Einführung yum (Yellow dog Updater, Modified) ist...

MySQL-Serververbindung, Trennung und cmd-Bedienung

Verwenden Sie den Befehl mysql, um eine Verbindun...

Detaillierte Schritte zur Installation und Konfiguration von MySQL 5.6.21

1. Übersicht MySQL-Version: 5.6.21 Download-Adres...

Eine kurze Einführung in die MySQL-Speicher-Engine

1. MySql-Architektur Bevor wir die Speicher-Engin...

Detaillierte Erklärung der Desktop-Anwendung mit Vue3 und Electron

Inhaltsverzeichnis Vue CLI erstellt ein Vue-Proje...

Stil-Trigger-Effekt des Webseiten-Eingabefelds

<br />Dieses Beispiel untersucht hauptsächli...

Beispielcode für HTML-Formularkomponente

HTML-Formulare werden verwendet, um verschiedene ...

So erstellen Sie eine Deep-Learning-Umgebung mit Python in einem Docker-Container

Überprüfen Sie die Virtualisierung im Task-Manage...