MyBatis هو إطار طبقة استمرار ممتازة يدعم استعلامات SQL العادية والإجراءات المخزنة ورسم الخرائط المتقدمة. يقوم MyBatis بإلغاء الإعدادات اليدوية لجميع كود JDBC تقريبًا والمعلمات وتغليف البحث في مجموعة النتائج. يمكن لـ MyBatis استخدام XML البسيط أو التعليقات التوضيحية للتكوين والتعيين الأصلي ، ورسم الخرائط وواجهات Java (كائنات Java القديمة) في سجلات في قاعدة البيانات.
في المقالة السابقة ، سأقدم لك البرنامج التعليمي على تعيين MyBatis الفردي.
اسمحوا لي أن أخبركم عن المعرفة MyBatis العديد من التعيين. التفاصيل المحددة هي كما يلي:
هناك العديد من الأمثلة على العديد من العدد ، مثل العلاقة بين الدورة والطلاب. يمكن أن يكون للدورة عدة طلاب اختياريين ، ويمكن للطالب أيضًا تناول مواد متعددة. العلاقة بين المعلمين والطلاب: يوجد لدى المعلم عدة طلاب ، ويحتوي الطالب على العديد من المعلمين.
خذ العلاقة بين الطلاب والدورة كمثال.
عندما نقوم بإنشاء جداول بيانات ، لدينا حلان:
النوع الأول:
عند إنشاء جدول بيانات الطالب ، قم بتخزين حقل مفتاح خارجي للدورة التدريبية.
عند إنشاء جدول بيانات الدورة التدريبية ، قم بتخزين حقل المفتاح الخارجي للطالب.
ولكن هذا له عيب كبير ، أي إذا أردت حذف جدول الطلاب ، فهناك حقل مفتاح خارجي لجدول الدورة التدريبية.
وبالمثل ، عندما أرغب في حذف جدول الدورة التدريبية ، هناك حقول مفاتيح خارجية لجدول الطالب. أوه ، ليس من السهل التعامل معها.
النوع الثاني:
نقوم بإنشاء طاولات الطلاب والدورات التدريبية ، وتخزين حقولهم وسجلاتهم في الجدولين.
يتم استخدام جدول شائع آخر للطلاب كطاولة وسيطة لتخزين مفاتيح الأجنبية للطالب والدورة.
هذا مريح للغاية بالنسبة لنا لحذف جدول الكلمات ، لذلك نعتمد هذا الحل.
نصوص قاعدة البيانات
-العديد من التعيينات-حذف قاعدة بيانات إسقاط قاعدة البيانات إذا كانت موجودة myBatis ؛-إنشاء قاعدة بيانات قم بإنشاء قاعدة بيانات إذا لم تكن موجودة في مجموعة الأحرف الافتراضية MyBatis utf8 ؛-حدد قاعدة بيانات استخدم myBatis ؛-قم بحذف جدول Drop Drop Table ؛ مفتاح PK_SID الأساسي (SID)) ؛ إنشاء دورة جدول (CID int (255) ، CNAME varchar (32) ، قيود PK_CID المفتاح الأساسي (CID)) ؛ إنشاء Table Student_course (SID int (255) ، CID int (255) ، القيد PK_SID_CID المفتاح الأساسي (SID ، CID) ، القيد FK_SID المفتاح الأجنبي (SID) المراجع الطالب (SID) ، القيد FK_CID OFFOIND (CID) دورة المراجع (CID)) (2 ، 'ha') ؛ incert in e e e اطلب من القيم (CID ، cname) (1 ، 'java') ؛ أدخل في مسار (CID ، cname) القيم (2 ، '. student_course (SID ، CID) قيم (2،2) ؛
قم بإنشاء فئة Many2Many.course.java جديدة
حزمة many2Many ؛ استيراد java.io.serializable ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛/*** دورة* @Author Administrator **/ @ @cumpresswarnings ("Serial"). {return cid ؛} public void setCid (Integer CID) {this.cid = cid ؛} السلسلة العامة getCname () {return cname ؛ طلاب؛}}قم بإنشاء فئة Many2Many.Student.java جديدة
حزمة many2Many ؛ استيراد java.io.serializable ؛ استيراد java.util.arraylist ؛ استيراد java.util.list ؛/*** فئة الطالب* @Authored Administrator **/ @ @cumpresswarnings ("Serial") الطالب العام تنفذ serializable {private inte sname ؛ {return sid ؛} public void setsid (integer sid) {this.sid = sid ؛} السلسلة العامة getName () {return sname ؛} public void setSname (String sname) {this.sname = sname ؛ دورات ؛}}قم بإنشاء ملف studentMapper.xml جديد وملف coursemapper.xml
<؟ type = "many2Many.Student" id = "studentMap"> <id property = "sid" column = "sid"/> <result property = "sname" column = "sname"/> <result property = "sname"/> </resultmap> <؟ 3.0 // en "" http://mybatis.org/dtd/mybatis-3-mapper.dtd "> <mapper namespace =" coursenamespace "> <resultmap type =" many2Many.course "id =" coursemap "> <id propert column = "cname"/> <ResterseMap> <!-استعلام الدورات التي أخذتها في "haha"-> <select id = "findallbyname" parametertype = "string" resultmap = "coursemap"> select c.cname ، #{sname} ؛ </select> </kapper>قم بإنشاء فئة جديدة لطبقة الطالب
حزمة many2many ؛ استيراد java.util.iterator ؛ استيراد java.util.list ؛ استيراد One2Many.Student ؛ استيراد org.apache.ibatis.session.sqlsession ؛ import org.junit.test @return* athrows استثناء*/قائمة عامة <STERNALBYNAME (اسم السلسلة) يلقي الاستثناء {sqlsession sqlsession = null ؛ حاول {sqlsession = myBatisutil.getsqlSession () ؛ E ؛} أخيرًا {myBatisutil.closesqlsession () ؛}}@testpublic void testfindallbyname () يلقي استثناء {studentCoursedao dao = new StudentCoursedao () ؛ list <Sourseses = dao.findallbyname ("haha" {system.out.println (course.getCid ()+":"+course.getCname ()) ؛}}}تحميل ملف التكوين في ملف mybatis.cfg.xml
<!-قم بتحميل ملف التعيين-> <mapper Resource = "One2one/cardmapper.xml"/> <mapper Resource = "One2one/STUTTEMAPPER.XML"/> <mapper Resource = "One2Many/grademapper.xml"/> <mapper Resource = "One2Many/STUTTEMPPER.XML"/> <mapper Resource = "Many2Many/StudentMapper.xml"/> <mapper Resource = "Many2Many/CoursEmapper.xml"/> <mapper Resource = "Many2Many/CoursEmapper.xml"/> <mapper resergen
ما سبق هو أول برنامج تعليمي على MyBatis العديد من Mapping الذي قدمه لك المحرر. آمل أن يكون ذلك مفيدًا لك. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر إليك في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!