Erster Schritt:
Fügen Sie Eigenschaften " useGeneratedKeys " und " keyProperty " in der MyBatis Mapper -Datei hinzu, in der keyProperty der Eigenschaftsname des Java -Objekts ist!
<einfügen id = "parameterType =" spares "useGeneratedKeys =" true "keyProperty =" id "> in Spares (Spares_id, Spares_Name, Spares_type_id, Spares_Spec) Werte (#{id},#{name},#{type},#{type},#{type}),#{type}, |Schritt 2:
Nachdem MyBatis die Anweisung Insert ausgeführt hat, wird der Eigenschafts-ID der Objekt-Ersatzteile automatisch den selbststörenden Wert zugewiesen. Daher kann es durch die Getter -Methode erhalten werden, die Ersatzteilen entspricht!
/** * Ersatzteile hinzugefügt * @Author HellOstory * @param Spares * @return */@RequestMapping (value = "/Insert") @Responbody public JsonResponse Insert (Spares Spares) {int count = sparesservice.insert (Spares); System.out.println ("Insgesamt einfügen" + count + "Record!" + "/N Der Wert des primären Schlüsselwachstums des gerade eingefügten Datensatzes lautet:" + spares.getId ());PS: MyBatis gibt die Selbstwachstums-ID der eingefügten Daten zurück
Heute berichtete der Test über einen Fehler. Das Phänomen ist, dass neu registrierte Benutzer den Bericht aller sehen können. Es gibt kein Problem mit alten Benutzern. Bei der Überprüfung des Protokolls wurde festgestellt, dass die ID des neu registrierten Benutzers null war, sodass eine vollständige Tabelle gültiger Datenabfrage durchgeführt wurde. Der Hauptschlüssel der Tabelle darf jedoch nicht leer sein. Wie kann eine neue registrierte Benutzer -ID null sein? Der Grund dafür ist, dass der Code in der Serviceschicht das Parameterobjekt direkt zurückgibt und der XML keine Konfiguration erstellt.
Die spezifische Lösung besteht darin, die Einfügungsmethode in XML zu konfigurieren
useGeneratedKeys = ”true” keyProperty = "RegisterID"
Der Schlüsselwert des Schlüsselproperty entspricht dem Primärschlüsselattribut im Entitäts -VO -Objekt
Die Details sind wie folgt:
<Code> @Override öffentliche Register erstellen (Register r) {registersmapper.insert (r); return r; } </code>Die Einfügenmethode von RegisterMapper.xml lautet wie folgt:
<Code> <id = "einfügen" keyProperty = "registerID" parameterType = "com.ciji.zzaservice.pojo.base.register" usedGeneratedKeys = "true">
Führen Sie eine normale Einfügungsanweisung aus
</einfügen> </code>
Auf diese Weise können Sie den selbstwachsenden Primärschlüssel der neu eingefügten Daten in der Controller-Ebene erhalten.
In Bezug auf die Bedeutung des Hinzufügens von zwei Attributen zum XML lautet die Online -Erklärung wie folgt:
useGeneratedKeys
(Nur für den Einfügen verwendet) Dies fordert MyBatis an, die GetGeneratedKeys-Methode von JDBC zu verwenden, um die internen Primärschlüssel zu holen, die intern mit Daten generiert werden (wie das automatische Inkrementfeld von Datenbankverwaltungssystemen wie MySQL und SQL Server). Standardwert: Falsch.
Schlüsselproperschaft
(Nur für den Einfügen verwendet) markieren Sie eine Eigenschaft und setzt ihren Wert durch GetGeneratedKeys oder über das Auswahlelement des SELECTKEY -Elements der Anweisung Insert. Standard: Nicht gesetzt.
Zusammenfassen
Das obige ist der vom Editor eingeführte Feldwert (ID) des selbstwachsenden Feldwerts (ID) des Einfügendatensatzes. Ich hoffe, es wird für alle hilfreich sein. Wenn Sie Fragen haben, hinterlassen Sie mir bitte eine Nachricht und der Editor wird allen rechtzeitig antworten. Vielen Dank für Ihre Unterstützung auf der Wulin.com -Website!