รหัสสำหรับลำดับการเสริมสร้างตนเองของ MyBatis Oracle มีดังนี้:
<insert id = "แทรก" useGeneratedKeys = "true" keyProperty = "s_id" parameterType = "xxxx"> <selectKey resultType = "int" order = "ก่อน" keyProperty = "s_id"> selecte seq_table.nextval sans-serif; "> s_id </span> <span style =" font-family: arial, helvetica, sans-serif; ">, ชื่อ, อายุ </span> ค่า ( #{s_id} #{ชื่อ}, #{อายุ}) </insert>resultType = "int" ส่งคืนประเภท int
KeyProperty กำหนดค่าการส่งคืนเป็น: คุณสมบัติของวัตถุพารามิเตอร์นั่นคือคุณสมบัติ S_ID ในคลาส XXXXX
useGeneratedKeys = "true" keyProperty = "s_id"
ส่งคืนรหัสลำดับหากไม่จำเป็นคุณไม่สามารถกรอกข้อมูลได้
มาดูการเติบโตของคีย์หลักของการกำหนดค่า mybatis Oracle
MySQL, SQLServer และฐานข้อมูลอื่น ๆ เองมีฟังก์ชั่นการเติบโตของตนเองหลักเช่น Auto_Increment พวกเขาสามารถใช้โดยตรง
useGeneratedKeys = "true" ที่จะนำไปใช้เช่นการกำหนดค่าต่อไปนี้
แทรกลงใน s_user_auth (id, user_id, user_name) ค่า (#{id},#{userId},#{username})อย่างไรก็ตาม Oracle ไม่ทำงาน การเติบโตของตัวเองของคีย์หลักของ Oracle นั้นทำได้ผ่านลำดับดังนั้นวิธีนี้จึงเป็นไปไม่ได้และคุณต้องใช้:
1. ก่อนอื่นค้นหา ID ผ่านลำดับจากนั้นแทรก
เลือก YourSequence.nextVal เป็น ID จาก dualInsert ไปยัง S_USER_AUTH (ID, user_id, user_name) ค่า (#{id},#{userId},#{ชื่อผู้ใช้})2. insertsertecence.nextval โดยตรงดังนี้
แทรกลงใน S_USER_AUTH (ID, user_id, user_name) ค่า (yourSequence.nextVal,#{userId},#{ชื่อผู้ใช้})