sql >> Databasteknik >  >> RDS >> Mysql

Hur man returnerar ID på inlägg med mybatis i mysql med kommentarer

Det är faktiskt möjligt att göra det med @Options anteckning (förutsatt att du använder auto_increment eller något liknande i din databas) :

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

Observera att keyProperty="idName" del är inte nödvändig om nyckelegenskapen i SomeBean heter "id". Det finns också en keyColumn attribut tillgängligt, för de sällsynta fall då MyBatis inte kan hitta primärnyckelkolumnen själv. Observera också att genom att använda @Options , skickar du din metod till några standardparametrar; det är viktigt att läsa dokumentet (länkad nedan -- sidan 60 i den aktuella versionen) !

(Gammalt svar) Den (ganska nyligen) @SelectKey annotering kan användas för mer komplex nyckelhämtning (sekvenser, identity() funktion...). Här är vad MyBatis 3 Användarhandbok (pdf) erbjuder som exempel:

@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. PHP Fatalt fel:Anrop till odefinierad funktion mysqli_stmt_get_result()

  2. Användarkontohantering, roller, behörigheter, autentisering PHP och MySQL -- Del 5

  3. Grundläggande tabelluttryck, del 5 – CTE:er, logiska överväganden

  4. PG COPY-fel:ogiltig indatasyntax för heltal