الخطوة الأولى:
أضف خصائص " useGeneratedKeys " و " keyProperty " في ملف MyBatis Mapper ، حيث keyProperty هو اسم خاصية كائن Java!
<insert id = "insert" parametertype = "spares" usegeneratedKeys = "true" keyproperty = "id"> insert in spares (spares_id ، spares_name ، spares_type_id ، spares_spec) القيم (#{id} ،#{name} ،الخطوة 2:
بعد تنفيذ MyBatis عبارة INSERT ، ستعين تلقائيًا قيمة التزحف الذاتي إلى معرف الخاصية لقطع الغيار الكائن. لذلك ، يمكن الحصول عليها من خلال طريقة getter المقابلة للقطع الغيار!
/** * تم إضافة قطع الغيار * author hellostory * param spares * @return */ @requestmapping (value = "/insert") responsebody public jsonresponse insert (spares spares) {int count = sparesservice.insert (spares) ؛ System.out.println ("insert in total" + count + "record!ملاحظة: يقوم MyBatis بإرجاع معرف النمو الذاتي للبيانات المدرجة
اليوم ، أبلغ الاختبار عن خطأ. هذه الظاهرة هي أن المستخدمين المسجلين حديثًا يمكنهم رؤية تقرير الجميع. لا توجد مشكلة مع المستخدمين القدامى. عند التحقق من السجل ، تبين أن معرف المستخدم المسجل حديثًا كان فارغًا ، لذلك تم إجراء استعلام عن البيانات الصالح في الجدول بالكامل. ومع ذلك ، لا يُسمح أن يكون المفتاح الأساسي للجدول فارغًا ، فكيف يمكن أن يكون معرف المستخدم المسجل الجديد فارغًا؟ والسبب هو أن الكود في طبقة الخدمة يعيد مباشرة كائن المعلمة ، وأن XML لا يقوم بأي تكوين.
الحل المحدد هو تكوين طريقة الإدراج في XML
usegeneratedKeys = "true" keyproperty = "registerId"
تتوافق قيمة keyproperty مع سمة المفتاح الأساسي في كائن VO الكياني
التفاصيل كما يلي:
<code> Override Public Registing Create (Registers r) {registersmapper.insert (r) ؛ العودة ص. } </code>طريقة الإدراج لـ registerMapper.xml كما يلي:
<code> <insert id = "insert" keyproperty = "registerId" parametertype = "com.ciji.zzasaservice.pojo.base.registers" edegeneratedKeys = "true">
تنفيذ بيان الإدراج العادي
</sert> </code>
وبهذه الطريقة ، يمكنك الحصول على المفتاح الأساسي للنمو الذاتي للبيانات التي تم إدراجها حديثًا في طبقة وحدة التحكم.
فيما يتعلق بمعنى إضافة سمتين إلى XML ، فإن التفسير عبر الإنترنت هو كما يلي:
uSgeneratedKeys
(يستخدم فقط لإدراج) هذا يخبر MyBatis باستخدام طريقة getGeneratedKeys من JDBC لجلب المفاتيح الأساسية التي تم إنشاؤها داخليًا بواسطة البيانات (مثل حقل التكرار التلقائي لأنظمة إدارة قاعدة البيانات مثل MySQL و SQL Server). القيمة الافتراضية: خطأ.
KeyProperty
(يستخدم فقط لإدراج) علامة على خاصية ، وسيقوم MyBatis بتعيين قيمته من خلال getGeneratedKeys أو من خلال عنصر SelecteKey Child في عبارة INSERT. الافتراضي: لم يتم تعيينه.
لخص
ما سبق هو قيمة حقل النمو الذاتي (معرف) لسجل الإدراج الذي أدخله المحرر. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!