Wie die Rückkehr der IDs einfügen in mybatis-und oracle-mit Anmerkung
Ich versuche im folgenden in Java
@Insert("INSERT INTO USERS (ID,NAME,AGE) VALUES(USER_SEQ.NEXTVAL,#{name},#{age})")
@Options(useGeneratedKeys=true, keyProperty="ID", keyColumn="ID")
public int insertUsers(User userBean);
Sollte es wieder der neue genarated ID, aber seine Rückkehr "1" immer, auch wenn seine Einfügung in die Tabelle in der richtigen Weise.
Kann jeder eine haben tryied diese "Erste-IDs zurück oder insertion in MyBatis(annotation) mit oracle"
- Haben Sie versucht, die RÜCKKEHR-Klausel, bietet Oracle? oracle-base.com/articles/misc/dml_returning_into_clause.php
- Vielen Dank für Ihre Antwort, Aber....RÜCKKEHR-Klausel gibt immer einen Wert zurück, die gespeichert werden muss in einigen Variablen, aber ich bin mit einer einzigen Zeile einfügen anstatt eine Prozedur für die gleichen
- Fair genug, viel Glück und lösen das Problem. 🙂
- es gibt 1 zurück, denn es verändert 1. Zeile. Check - executeUpdate auf preparedStatement gibt die Anzahl der ros es geändert. Ich glaube nicht, dass es eine gute Lösung für Ihr problem. Ich verwende unterschiedliche Methoden, um die neue id erstellen, legen Sie die Domäne und speichern Sie es.
- Klingt gut, aber meine Liebe, ich kann es nicht tun, weil ich arbeite an einem bestehenden system & frameork und ich kann eine solche Art von änderungen.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Lesen Sie die MyBatis-Dokumentation.
So, da ein Pojo mit einem Feld "id" mit den get-und set-Methoden. Nach der insert-Anweisung mit den Mapper-Klasse ran, das id-Feld, auf dem das pojo wird mit dem erzeugten Schlüssel-Wert.
Student
pojo mit einemid
Attribut. Erstellen Sie Ihre neue Schülerin und rufenstudentMapper.addNewStudent(student);
Jetztstudent.getId()
enthält die auto-Nummer, nicht den Rückgabewert vonaddNewStudent()
-, dass wird immer sein, die Anzahl der betroffenen Zeilen.Dank allen für Ihre Antworten, aber ich habe die Lösung hier ist es.....
nun wird es wieder die neue ID erstellt