Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 13726|Antwort: 0

[Quelle] mybatis-Notizen werden über die Mapper-Oberfläche annotiert

[Link kopieren]
Veröffentlicht am 16.01.2019 13:00:53 | | | |
1. Von Mybatis unterstützte Kartierungsmethoden

Die von mybatis unterstützten Mapping-Methoden umfassen mapper.xml Dateien, die auf XML basieren, sowie Mapper-Interface-Klassen, die auf Java basieren.
Es gibt vier Hauptannotationen für Schnittstellenmethoden: @Insert, @Delete, @Update und @Select

2. Wie man mit Interface-Annotationen kartiert

Die folgenden Experimente basieren alle auf t_user Tabellen und sind wie folgt aufgebaut:

2.1 Erhöhung @Insert

Es gibt im Grunde drei Verfahren dafür: manuelle Bezeichnung (Anwendungsebene), selbsthinzufügender Primärschlüssel (Datenschicht einzelne Tabelle) und Auswahl des Primärschlüssels (Datenschicht mehrere Tabellen).

1. Manuell den Primärschlüssel auf der Anwendungsebene angeben

Die manuelle Methode behandelt den Primärschlüssel nicht anders und gibt dem Primärschlüssel einen Wert, wenn die Anwendungsschicht das Objekt vor der Einfügung generiert, was sich nicht vom normalen Feld beim Einfügen unterscheidet.

Im obigen Beispiel weiß Mybatis nicht, welches Feld der Primärschlüssel ist und id das Primärschlüsselfeld, aber es wird nicht anders behandelt.

Beachten Sie, dass die #{username}-Methode darin besteht, Benutzer als aktuellen Kontext zu verwenden, sodass Sie beim Zugriff auf die Attribute des Benutzers direkt den Attributnamen schreiben können.

2. Die Tabelle fügt den Primärschlüssel hinzu

Der selbst-inkrementierende Primärschlüssel entspricht dem Backfill des Primärschlüssels in der XML-Konfiguration, ein einfaches Beispiel:

Verwenden Sie die Option, um den Eigenschaften des Select-Tag-Sets in XML zu entsprechen, userGeneratordKeys, um anzuzeigen, dass Sie einen selbstinkrementierenden Primärschlüssel verwenden möchten, und keyProperty, um den Feldnamen des Primärschlüsselfeldes anzugeben.

Der selbst-inkrementierende Primärschlüssel nutzt die selbst-inkrementierenden Funktionen der zugrundeliegenden Datenbank.

3. Wählen Sie den Primärschlüssel aus

Wählen Sie den Primärschlüssel aus, um einen Wert aus der Datenschicht zu generieren, und verwenden Sie diesen Wert als Wert des Primärschlüssels.


2.2 Löschen @Delete

Beim Löschen schreibe einfach die Bedingung im Wert der @Delete-Annotation und gib einen Int-Typ als Anzahl der erfolgreich gelöschten Datensätze zurück.


2.3 Änderung @Update

Beim Ändern schreibe einfach die SQL-Anweisung in den Wert der @Update und gib einen Int-Typ zurück, der die Anzahl der geänderten Datensatzzeilen angibt.


2.4 Check @Select

Abfragen sind etwas komplizierter, da die Abfrage darin besteht, wie die gefundenen Felder auf das Objekt gesetzt werden, und es gibt in der Regel drei Möglichkeiten:

1. Geben Sie manuell ein Alias in der SQL-Anweisung an, um zu übereinstimmen

Beim Schreiben von SQL-Anweisungen weist jedem Feld manuell ein Alias zu, um mit den Attributen des Objekts übereinzustimmen, was geeignet ist, wenn der Name des Tabellenfelds und der Objektattributname sehr unterschiedlich sind und es nicht viele Tabellenfelder gibt.


2. Verwenden Sie die automatische Unterstrich-Höcker-Transformation von Mybatis

mybatis hat eine Option namens mapUnderscoreToCamelCase, die gilt, wenn der Feldname in der Tabelle mit dem Attributnamen des Objekts übereinstimmt, aber der Unterschied zwischen Unterstrich und Buckelschrift besteht.

Nach der Konfiguration von mapUnderscoreToCamelCase versucht mybatis, den Unterstrich in einen Buckel umzuwandeln, wenn die im ResultSet gefundenen Daten auf das Objekt gesetzt werden, und fügt dann die Menge vorne zusammen, um die Attribute zu setzen.

Schalte die Umstellung ein:




Dann frage:

Betrachtet man das gedruckte Ergebnis, werden birth_day Attribute in das Objekt eingefügt:



3. Verwenden Sie ResultMap

Wenn der Feldname der Tabelle und der Attributname des Objekts nicht sehr gleich sind und viele Felder in der Tabelle vorhanden sind, sollte ResultMap zur Anpassung verwendet werden.


@Results entspricht der ResultMap in XML, und Sie können eine ID dafür angeben, die verwendet werden kann, um sie anderswo zu referenzieren, zum Beispiel um auf die obigen Ergebnisse zu verweisen:

Verwenden Sie @ResultMap zur Referenz auf eine bestehende ResultMap, die in Java mit @Results Annotationen oder in XML mit resultMap-Tags definiert werden kann.

2.5 Beispielcode

User.java


UserMapper.java

3. Zusammenfassung

Vorteile der Verwendung von Schnittstellenannotationen:

1. Es ist bequemer und schneller, Mapping-Anweisungen zu schreiben

Nachteile der Verwendung von Schnittstellenannotationen:

1. Sie ist für relativ einfache Konfigurationen geeignet, und die Schnittstelle kann nicht gemacht werden, wenn sie zu kompliziert ist.

2. Dynamische SQL nicht mehr verwenden können, etwas geschmacklos.






Vorhergehend:Dämonengeist-Beschwörung V4.1.8 wird auf zurückhaltende Weise eingesetzt
Nächster:Kirin Article Originality Detection Tool v2.0 (Kontaktinformationen des Autors entfernen)
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com