sql >> Database >  >> RDS >> Mysql

Hoe u id's op Inserts kunt retourneren met mybatis in mysql met annotaties

Eigenlijk is het mogelijk om het te doen, met de @Options annotatie (op voorwaarde dat u auto_increment of iets dergelijks gebruikt in uw database):

@Insert("insert into table3 (id, name) values(null, #{name})") 
@Options(useGeneratedKeys=true, keyProperty="idName")
int insertTable3(SomeBean myBean); 

Merk op dat de keyProperty="idName" deel is niet nodig als de sleuteleigenschap in SomeBean "id" heet. Er is ook een keyColumn attribuut beschikbaar, voor de zeldzame gevallen waarin MyBatis de primaire sleutelkolom niet zelf kan vinden. Houd er ook rekening mee dat door het gebruik van @Options , u onderwerpt uw ​​methode aan enkele standaardparameters; het is belangrijk om het document te raadplegen (hieronder gelinkt -- pagina 60 in de huidige versie) !

(Oud antwoord) De (vrij recente) @SelectKey annotatie kan worden gebruikt voor het ophalen van complexere sleutels (reeksen, identiteit()-functie...). Dit is wat de MyBatis 3 Gebruikershandleiding (pdf) biedt als voorbeelden:

@Insert("insert into table3 (id, name) values(#{nameId}, #{name})") 
@SelectKey(statement="call next value for TestSequence", keyProperty="nameId", before=true, resultType=int.class) 
int insertTable3(Name name); 
@Insert("insert into table2 (name) values(#{name})")
@SelectKey(statement="call identity()", keyProperty="nameId", before=false, resultType=int.class)
int insertTable2(Name name);


  1. Hoe html op te slaan in een mysql-database

  2. JDBC-verbindingsfout:niet-herkende tijdzone

  3. Sql Server-trigger voegt waarden van nieuwe rij in een andere tabel in

  4. Een database maken in MySQL Workbench met behulp van de GUI