Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Cách trả lại id trên Phụ trang với mybatis trong mysql với chú thích

Trên thực tế, bạn hoàn toàn có thể làm được điều đó với @Options chú thích (miễn là bạn đang sử dụng auto_increment hoặc thứ gì đó tương tự trong cơ sở dữ liệu của mình):

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

Lưu ý rằng keyProperty="idName" một phần là không cần thiết nếu thuộc tính khóa trong SomeBean được đặt tên là "id". Ngoài ra còn có một keyColumn thuộc tính khả dụng, đối với những trường hợp hiếm hoi khi MyBatis không thể tự mình tìm thấy cột khóa chính. Cũng xin lưu ý rằng bằng cách sử dụng @Options , bạn đang gửi phương thức của mình tới một số tham số mặc định; điều quan trọng là phải tham khảo tài liệu (được liên kết bên dưới - trang 60 trong phiên bản hiện tại)!

(Câu trả lời cũ) (Khá gần đây) @SelectKey chú thích có thể được sử dụng để truy xuất khóa phức tạp hơn (trình tự, hàm nhận dạng () ...). Đây là nội dung của Hướng dẫn sử dụng MyBatis 3 (pdf) cung cấp làm ví dụ:

@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. EEE MMM dd HH:mm:ss Định dạng ngày ZZZ yyyy thành java.sql.Date

  2. SQL Auto-Increment theo DateTime

  3. Truy cập dữ liệu từ servlet

  4. Cách tạo mật khẩu sáu ký tự trong MySQL 5.7

  5. Làm thế nào để cài đặt pyodbc 64-bit?