ขั้นตอนแรก:
เพิ่มคุณสมบัติ " useGeneratedKeys " และ " keyProperty " ในไฟล์ MyBatis Mapper ที่ keyProperty เป็นชื่อคุณสมบัติของวัตถุ Java!
<insert id = "แทรก" parameterType = "spares" useGeneratedKeys = "true" keyProperty = "id"> แทรกลงในอะไหล่ (spares_id, spares_name, spares_type_id, spares_spec) ค่า (#{id},#{name}ขั้นตอนที่ 2:
หลังจาก MyBatis ดำเนินการคำสั่งแทรกแล้วมันจะกำหนดค่าการเพิ่มขึ้นของตัวเองโดยอัตโนมัติให้กับ ID คุณสมบัติของอะไหล่วัตถุ ดังนั้นจึงสามารถรับได้ผ่านวิธี getter ที่สอดคล้องกับอะไหล่!
/** * เพิ่มอะไหล่อะไหล่ * @author Hellostory * @param Spares * @return */@requestmapping (value = "/insert") @ResponseBody public JsonResponse แทรก (อะไหล่อะไหล่) {int count = sparesservice.insert (spares); System.out.println ("แทรกทั้งหมด" + count + "บันทึก!" + "/n ค่าการเติบโตของคีย์หลักของคีย์หลักของบันทึกที่เพิ่งแทรกคือ:" + spares.getId ());PS: MyBatis ส่งคืน ID ที่เติบโตตนเองของข้อมูลที่แทรก
วันนี้การทดสอบรายงานข้อผิดพลาด ปรากฏการณ์คือผู้ใช้ที่ลงทะเบียนใหม่สามารถดูรายงานของทุกคนได้ ไม่มีปัญหากับผู้ใช้เก่า เมื่อตรวจสอบบันทึกพบว่า ID ของผู้ใช้ที่ลงทะเบียนใหม่นั้นเป็นโมฆะดังนั้นจึงมีการสืบค้นข้อมูลที่ถูกต้องตารางเต็ม อย่างไรก็ตามคีย์หลักของตารางไม่ได้รับอนุญาตให้ว่างเปล่าดังนั้นรหัสผู้ใช้ที่ลงทะเบียนใหม่จะเป็นโมฆะได้อย่างไร เหตุผลก็คือรหัสในเลเยอร์บริการส่งคืนวัตถุพารามิเตอร์โดยตรงและ XML ไม่ได้ทำการกำหนดค่าใด ๆ
ทางออกเฉพาะคือการกำหนดค่าวิธีการแทรกใน XML
useGeneratedKeys =” true” keyProperty =” registerId”
ค่า keyProperty สอดคล้องกับแอตทริบิวต์คีย์หลักในวัตถุเอนทิตี VO
รายละเอียดมีดังนี้:
<code> @Override การลงทะเบียนสาธารณะสร้าง (ลงทะเบียน R) {registersmapper.insert (R); Return R; } </code>วิธีการแทรกของ registermapper.xml มีดังนี้:
<code> <insert id = "แทรก" keyProperty = "registerId" parameterType = "com.ciji.zzaservice.pojo.base.base.registers" usedGeneratedKeys = "true">>
ดำเนินการคำสั่งแทรกปกติ
</insert> </code>
ด้วยวิธีนี้คุณสามารถรับคีย์หลักที่เติบโตด้วยตนเองของข้อมูลที่แทรกใหม่ในเลเยอร์คอนโทรลเลอร์
เกี่ยวกับความหมายของการเพิ่มสองแอตทริบิวต์ลงใน XML คำอธิบายออนไลน์มีดังนี้:
useGeneratedKeys
(ใช้สำหรับการแทรกเท่านั้น) สิ่งนี้จะบอกให้ MyBatis ใช้วิธี GetGeneratedKeys ของ JDBC ในการดึงคีย์หลักที่สร้างขึ้นภายในโดยข้อมูล (เช่นฟิลด์การแทรกซึมอัตโนมัติของระบบการจัดการฐานข้อมูลเช่น MySQL และ SQL Server) ค่าเริ่มต้น: เท็จ
คีย์ไพรซ์
(ใช้สำหรับการแทรกเท่านั้น) ทำเครื่องหมายคุณสมบัติ MyBatis จะตั้งค่าผ่าน getGeneratedKeys หรือผ่านองค์ประกอบลูก selectKey ของคำสั่งแทรก ค่าเริ่มต้น: ไม่ได้ตั้งค่า
สรุป
ข้างต้นคือค่าฟิลด์ที่เติบโตด้วยตนเอง (ID) ของบันทึกแทรกที่แนะนำโดยตัวแก้ไข ฉันหวังว่ามันจะเป็นประโยชน์กับทุกคน หากคุณมีคำถามใด ๆ โปรดฝากข้อความถึงฉันและบรรณาธิการจะตอบกลับทุกคนในเวลา ขอบคุณมากสำหรับการสนับสนุนเว็บไซต์ Wulin.com!