Mysql
 sql >> Teknologi Basis Data >  >> RDS >> Mysql

Bagaimana cara mengembalikan id pada Sisipan dengan mybatis di mysql dengan anotasi

Sebenarnya, itu mungkin dilakukan, dengan @Options anotasi (asalkan Anda menggunakan auto_increment atau yang serupa di database Anda) :

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

Perhatikan bahwa keyProperty="idName" part tidak diperlukan jika properti kunci di SomeBean bernama "id". Ada juga keyColumn atribut tersedia, untuk kasus yang jarang terjadi ketika MyBatis tidak dapat menemukan kolom kunci utama sendiri. Harap perhatikan juga bahwa dengan menggunakan @Options , Anda mengirimkan metode Anda ke beberapa parameter default; penting untuk berkonsultasi dengan dokumen (tertaut di bawah -- halaman 60 dalam versi saat ini) !

(Jawaban lama) (cukup baru) @SelectKey anotasi dapat digunakan untuk pengambilan kunci yang lebih kompleks (urutan, fungsi identitas()...). Inilah Panduan Pengguna MyBatis 3 (pdf) menawarkan sebagai contoh :

@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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Isi Array PHP dari While Loop

  2. PHP - MySQL mendapatkan nilai parameter keluar dari prosedur tersimpan

  3. Bagaimana cara memperbarui dua tabel dalam satu pernyataan?

  4. pymssql.OperationalError:pesan kesalahan DB-Lib 20009, tingkat keparahan 9

  5. Menambahkan bidang alias MySQL bersama-sama