1. واجهة getMapper ()
التحليل: getMapper () واجهة idept.class يحدد واجهة ،
تركيب طريقة لم يتم تنفيذها. بعبارات خاصة ، يجب أن يكون أي طريقة تقترض المبنى متسقة مع سمة المعرف في التكوين الصغير.
من خلال الوكيل: قم بإنشاء اسم فئة التنفيذ للواجهة ، والحفاظ على اسم $$ dept_abc ، selectDeptbyno () في mybatis الكامنة
إنه يعادل نوعًا قويًا
على سبيل المثال
الخطوة 1: تحديد واجهة في cn.happy.dao
package cn.happy.dao ؛ استيراد java.util.list ؛ استيراد cn.happy.entity.dept ؛ واجهة عامة ideptdao {// الخطوة 2: تكوين idept.xml تكوين صغير
التحليل: يجب أن تكون سمة المعرف في SELECT هي نفس اسم طريقة الواجهة في الواجهة ؛ اسم حزمة سمة مساحة الاسم هو cn.happy.dao.ideptdao واجهة
<؟ مساحة الاسم = "cn.happy.dao.ideptdao"> <select id = "getAllDept" resultType = "cn.happy.entity.dept"> حدد * من قسم </select> </mapper>
الخطوة 3: فئة الاختبار
التحليل: هناك طريقتان لعرض جميع المعلومات
1) Session.SelectList ("cn.happy.dao.ideptdao.getalldept") ؛ ------------------------------------------------------------------------------------------------------------------------------------------------------------------------
2) ideptdao mapper = session.getMapper (ideptdao.class) ؛ يعادل فئة التنفيذ ، GetMapper نوع قوي
. اسم المعرّف في التكوين الصغير ================ LIST <DEPT> list = session.selectlist ( فئة التنفيذ في الذاكرة ======================== نوع قوي // mapper هو كائن فئة التنفيذ ideptdao mapper = session.getMapper (ideptdao.class) ؛ list <dept> list = mapper.getalldept () ؛ لـ (Dept Dept: List) {System.out.println (dept.getDeptName ()) ؛} الخطوة 4: استخدم تكوينًا كبيرًا في النص كله
<؟ الاسم المستعار-> <TypeAliases> <typealias type = "cn.resultMap.Enetity.emp" alias = "emp"/> </typealiases> <البيئات default = "development"> <البيئة id = "development"> <sutactionManager type = "jdbc"/> <dataSurce type = "properial". /> <name property = "url" value = "jdbc: oracle: thin:@localhost: 1521: orcl" /> <property name = "username" value = "sa" /> <property name = "password" value = "1" /> </saxource> </ Resource = "Cn/ResultMap/enetity/emp.xml"/> </nyber> </ispicturation>
2. علامة النتيجة
التحليل: السيناريو المستخدم هو أنه عندما لا تتطابق خصائص فئة الكيان مع قاعدة البيانات ، يجب أن تكون خصائص فئة الكيان متسقة. (لقد استخدمت فئة الكيان من قبل)
على سبيل المثال ، يبحث عن جميع الموظفين والإدارات التابعة
الخطوة 1: إنشاء واجهة
package cn.resultmap.dao ؛ استيراد java.util.list ؛ استيراد cn.resultmap.enetity.emp ؛ الواجهة العامة iempdao {// استرجاع جميع الموظفين والإدارات التابعة القائمة العامة <mem> getAlemps () ؛} ؛ الخطوة 2: تكوين الخصائص في التكوين الصغير
التحليل: بالنسبة لطرف واحد له منظور كبير للموظف ، يرجى استخدام جمعية لتضمين كل سمة لطرف واحد. (إذا تمت إزالة الجمعية ، فهذا هو النتيجة الأساسية)
<؟ مساحة الاسم = "cn.resultmap.dao.impdao"> <resultmap type = "cn.resultmap.enetity.emp" id = "empmap"> <id property = "empid" column = "empcite"/> <result regust property = "empname" column = "empname"/> منظور ، يرجى استخدام الارتباط -> <Association property = "dept" javatype = "cn.resultmap.enetity.dept"> <result property = "deptname" column = "deptname"/> <result property = "deptno" column = "deptno"/> </ensivand> EMP E ، Dept d Whyedeptno = D.Deptno </select> </papper>
الخطوة 3: فئة الاختبار
// resultmap: يُضمن أن يكون اسم السمة للكيان واسم حقل الجدول متسقًا مع ResultMap // إذا أبلغت عن Nullexception ، راجع ما إذا تم تكوين ارتباط رسم الخرائط بالتكوين الصغير. تم تكوين ResultMap testpublic void testAllemp () {sqlsession session = factory.opensession () ؛ impdao mapper = session.getMapper (iempdao.class) ؛ قائمة <emp> allemps = mappper.getAllemps () ؛ من أجل (EMP: allemps) {system.out.println (emp.getempname ()+"/t القسم التابع"+emp.getDept (). getDeptName ()) ؛} session.close () ؛} الخطوة 4: تقديم تكوينات صغيرة في تكوينات كبيرة
3. استخراج أعمدة SQL
التحليل: علامة SQL تبسيط حجم الكود في التكوين الصغير
<!-استخدام علامات SQL-> <sql id = "الأعمدة"> d.deptno ، d.deptname </sql> <!-استخدام علامات SQL-> <select id = "getAllemps" resultMap = "empmap"> select e.
4. الاسم المستعار
التحليل: اكتب تكوينات كبيرة ، بحيث يمكن الرجوع إلى الاسم المستعار في تكوينات صغيرة
<!-قم بتغيير قيمة السمة من النوع في تكوين الاسم المستعار إلى الاسم المستعار-> <TypeAliases> <typealias type = "cn.resultMap.Enetity.emp" alias = "emp"/> </thypealiass>
5. العملية الديناميكية
التحليل: العناصر الرئيسية المستخدمة لتنفيذ SQL الديناميكي هي:
إذا اخترت (متى ، خلاف ذلك) عند التعيين
على سبيل المثال ، عرض الناس في مدينة بكين
الخطوة 1: واجهة
package cn.resultmap.dao ؛ استيراد java.util.list ؛ استيراد cn.resultmap.enetity.emp ؛ الواجهة العامة iempdao {// استرجاع جميع الموظفين والإدارات التابعة القائمة العامة <mem> getAlemps () ؛} ؛الخطوة 2: الإصدار الصغير = "1.0" الترميز = "UTF-8"؟>
<! doctype mapperpublic "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace = "cn.resultmap.daoo id = "empmap"> <id property = "empid" column = "empid"/> <result property = "empname" column = "empname"/> <result property = "empcity" column = "empcity"/> <!-for One stired مع منظور كبير الموظفين ، يرجى استخدام الارتباط- property = "deptname" column = "deptname"/> <result property = "deptno" column = "deptno"/> </resultmap> <select id = "getAllemps" resultmap = "empmap"> select e.* ، d. id = "testallempbuselect" parametertype = "cn.resultmap.enetity.emp" resultType = "cn.resultMap.Enetity.emp" resultType = "cn.resultMap.Entity.emp"> SELECT * من EPPID <WHER> test = "empname! = null"> و empname =#{empname} </if> <test = "empcity! = null"> و empcity =#{empcity} </if> </where> </select> </prapper> الخطوة 3: اختبار
// الاستعلام الديناميكي testpublic void testselect () {sqlsession session = factory.opensession () ؛ emp emp = new emp () ؛ // emp.setempname ("331") (EMP EMPS: LIST) {system.out.println (emps.getempname ()) ؛} session.close () ؛} الخطوة 4: تقديم تكوينات صغيرة في تكوينات كبيرة
على سبيل المثال ، تعديل معلومات القسم
الخطوة 1: واجهة
الخطوة 2: التكوين الصغير
<؟ مساحة الاسم = "cn.resultmap.dao.ideptdao"> <resultmap type = "cn.happy.entity.dept" id = "deptresultmap"> <id property = "deptno" column = "deptno"/> <result property = "deptname" column = "deptname/> resultmap = "deptresultmap"> حدد d.* ، e.* من Dept D ، empe ewhere d.deptno = e.deptno و d.deptno =#{deptno} </select> <! DEPT <SET> <if test = "deptno! = null"> deptno =#{deptno} ، </if> <if test = "deptname! = null"> deptname =#{deptname} ، </if> </set> حيث deptno =#{deptno} الخطوة 3: اختبار
/*** التعديل الديناميكي**/@@testpublic void testupdate () {sqlsession session = factory.opensession () ؛ Dept Dept = New Dept () ؛ Dept.SetDeptName ("Department Department") ؛ Dept.SetDeptno (1) ؛ int count = session.update ("cn.resultmap.dao.ideptdao.testupdate" ، dept) ؛ session.commit () ؛ system.out.println (count) ؛ session.close () ؛}ما ورد أعلاه هو شرح مفصل لواجهة getMapper () MyBatis ، وعلامة ResultMap ، والاسم المستعار ، ومحاولة استخراج أعمدة SQL ، والعمليات الديناميكية. آمل أن يكون ذلك مفيدًا للجميع. إذا كان لديك أي أسئلة ، فيرجى ترك رسالة لي وسوف يرد المحرر على الجميع في الوقت المناسب. شكرا جزيلا لدعمكم لموقع wulin.com!