Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

एनोटेशन के साथ mysql में mybatis के साथ इन्सर्ट पर आईडी कैसे लौटाएं?

दरअसल, @Options . के साथ ऐसा करना संभव है एनोटेशन (बशर्ते आप auto_increment या अपने डेटाबेस में कुछ इसी तरह का उपयोग कर रहे हों):

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

ध्यान दें कि keyProperty="idName" यदि कुछ बीन में मुख्य संपत्ति को "आईडी" नाम दिया गया है, तो भाग आवश्यक नहीं है। एक keyColumn भी है विशेषता उपलब्ध है, दुर्लभ मामलों के लिए जब MyBatis स्वयं प्राथमिक कुंजी कॉलम नहीं ढूंढ पाता है। कृपया यह भी ध्यान दें कि @Options . का उपयोग करके , आप अपनी विधि को कुछ डिफ़ॉल्ट पैरामीटर पर सबमिट कर रहे हैं; डॉक्टर से परामर्श करना महत्वपूर्ण है (नीचे लिंक - वर्तमान संस्करण में पृष्ठ 60) !

(पुराना उत्तर) (काफी हाल का) @SelectKey एनोटेशन का उपयोग अधिक जटिल कुंजी पुनर्प्राप्ति (अनुक्रम, पहचान () फ़ंक्शन ...) के लिए किया जा सकता है। यहाँ क्या है MyBatis 3 उपयोगकर्ता मार्गदर्शिका (पीडीएफ) उदाहरण के रूप में प्रस्तुत करता है:

@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. 8GB mysql डंप के आयात में लंबा समय लगता है

  2. तर्कों की एक गतिशील संख्या के साथ एक MySQL संग्रहीत फ़ंक्शन बनाएं

  3. MYSQL त्रुटि 1045 . के लिए प्रवेश निषेध

  4. कैसे पता करें कि कौन से ईमेल समान सूचियों में हैं?

  5. विदेशी कुंजी बाधाएं:अद्यतन पर और हटाए जाने पर कब उपयोग करें