วิธีการเขียนไฟล์การทำแผนที่ของ MyBatis มีความหลากหลายและวิธีการเขียนและการใช้งานที่แตกต่างกันมีความแตกต่างอย่างมากในเวลาการพัฒนาและเวลาในการบำรุงรักษาที่ใช้ในระหว่างกระบวนการพัฒนาจริง วันนี้ฉันจะบันทึกวิธีการเขียนไฟล์การแมปที่ค่อนข้างง่ายเพื่อให้ทุกคนแก้ไขและแนะนำและพยายามหาวิธีการเขียนที่ดีที่สุด ~~:
นำวัตถุผู้ใช้และ usermap.xml เป็นตัวอย่างในการอธิบายรหัสมีดังนี้:
ผู้ใช้คือคลาสเอนทิตีของผู้ใช้ (สำหรับคำอธิบายเท่านั้นคุณสามารถมุ่งเน้นไปที่ตัวแปรประเภทอ้างอิงเท่านั้นและวิธีการรับ/ชุดจะถูกละเว้น):
นำเข้า com.google.common.collect.lists; นำเข้า com.gukeer.common.persistence.dataentity; นำเข้า com.gukeer.modules.personal.entity.dept; นำเข้า com.gukeer.modules.personal.entity.staff; java.util.date;/*** เอนทิตีของผู้ใช้ ** Auther: CC*วันที่: 2016/9/2*/ผู้ใช้ระดับสาธารณะขยาย DataEntity <ผู้ใช้> {ส่วนตัวคงที่ Long SerialVersionUid = 1L; ID สตริงส่วนตัว; บริษัท สำนักงานส่วนตัว; // สำนักงานสำนักงานเอกชน; // สตริงส่วนตัว loginName; // ชื่อเข้าสู่ระบบรหัสผ่านสตริงส่วนตัว // รหัสผ่านส่วนตัวหมายเลขสตริงหมายเลข; // หมายเลขงานชื่อสตริงส่วนตัว; // ชื่ออีเมลสตริงส่วนตัว; // อีเมลสตริงส่วนตัว // โทรศัพท์สตริงส่วนตัวมือถือ; // พกพาสตริงส่วนตัว userType; // ประเภทผู้ใช้สตริงส่วนตัวเข้าสู่ระบบ LOGINIP; // การเข้าสู่ระบบล่าสุด ipprivate วันที่ logindate; // วันที่เข้าสู่ระบบล่าสุดสตริงส่วนตัวเข้าสู่ระบบ LoginFlag; // ว่าจะอนุญาตให้เข้าสู่ระบบภาพถ่ายสตริงส่วนตัวหรือไม่ // Avatar Private String qrcode; // qr รหัสสตริงส่วนตัว oldloginname; // ชื่อล็อกอินดั้งเดิมสตริงส่วนตัว newpassword; // รหัสผ่านใหม่สตริงส่วนตัว oldloginip; // การเข้าสู่ระบบครั้งสุดท้าย ipprivate วันที่ oldlogindate; // วันที่เข้าสู่ระบบล่าสุดแผนกเอกชนแผนก; // เจ้าหน้าที่ของแผนกพนักงานเอกชน; // ตำแหน่งบทบาทส่วนตัว; // เงื่อนไขผู้ใช้แบบสอบถามขึ้นอยู่กับรายการบทบาทส่วนตัว <loes> RoleList = lists.newarrayList (); // เจ้าของรายการบทบาทโรงเรียนโรงเรียนเอกชน; // Attributor Private String หมายเหตุ; // หมายเหตุผู้ใช้ส่วนตัว CreateBy; // ผู้สร้างวันที่ส่วนตัวสร้างขึ้น; // วันที่สร้างการอัพเดทผู้ใช้ส่วนตัว // อัปเดตวันที่ส่วนตัวอัปเดต; // วันที่อัปเดตสตริงส่วนตัว delflag; // ลบเครื่องหมาย (0: ปกติ; 1: ลบ; 2: รีวิว)}สำหรับตัวแปรสมาชิกประเภทอ้างอิงเพื่อกำหนดค่าโดยตรงระหว่างกระบวนการสืบค้นผลลัพธ์การสืบค้นสามารถกำหนดให้กับชุดผลลัพธ์ที่ส่งคืนในไฟล์การแมป:
<? xml version = "1.0" การเข้ารหัส = "utf-8"?> <! doctype mapper สาธารณะ "-// mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd namespace = "com.gk.modules.sys.dao.userdao"> <!-ประเด็นสำคัญคือส่วนนี้การกำหนดฟิลด์ ID โดยตรงที่บันทึกโดยฐานข้อมูลไปยังตัวแปรสมาชิกของวัตถุเช่น A.Company_id เป็น "บริษัท " <!- แน่นอนตัวแปรประเภทอ้างอิงใน บริษัท สามารถกำหนดได้โดยใช้วิธีนี้ สามารถตรวจสอบหลายตารางผ่านการเข้าร่วมด้านซ้าย นี่คือการดำเนินการในแบบสอบถามฐานข้อมูล สิ่งนี้ไม่ได้กล่าวถึงที่นี่-> <sql id = "usercolumns"> a.id, a.company_id เป็น "company.id", a.office_id เป็น "Office.id", A.login_name, A.Password, A.No, A.Name, A.Email, A.Phone, A.Mobile, A.User_Type, A.Login_ip, A.login_date, A.Remarks, A.login_flag, A.Photo, A.QRCODE, A.CREATE_ "updateby.id", a.update_date, a.del_flag, c.name เป็น "company.name", c.parent_id เป็น "company.parent.id", c.parent_ids เป็น "company.parentids", ca.id เป็น "บริษัท . area.id", ca.name ในฐานะ "company.area.parentids", o.name เป็น "Office.name", o.parent_id เป็น "Office.id.id", oa.id เป็น "Office.area.id", oa.name เป็น "Office.area.name", oa.parent_id เป็น "Company.primaryperson.id", cu.name เป็น "company.primaryperson.name", cu2.id เป็น "company.deputyperson.id", cu2.name เป็น "company.deputyperson.name", ou.id as "primaryperson.id" "Office.deputyperson.id", ou2.name เป็น "Office.deputyperson.name", sc.xxlx เป็น "school.xxlx", sc.xxmc ในฐานะ "school.xxmc" </sql> <sql id = "userjoins"> c.area_idleft เข้าร่วม sys_office o บน o.id = a.office_idleft เข้าร่วม sys_area oa บน oa.id = o.area_idleft เข้าร่วม sys_user cu บน cu.id = c.primary_personleft o.primary_personleft เข้าร่วม sys_user ou2 บน ou2.id = o.deputy_personleft เข้าร่วม xj_school sc บน sc.id = a.school </sql> <!-คำสั่งค้นหา resultType = "ผู้ใช้"> เลือก <รวม refid = "usercolumns"/> จาก sys_user a <รวม refid = "userjoins"/> โดยที่ a.id = #{id} </select> <! refid = "usercolumns"/> จาก sys_user a <include refid = "userjoins"/> โดยที่ a.login_name = #{loginName} และ a.del_flag = #{del_flag_normal} </select> <! Office_id, login_name, รหัสผ่าน, ไม่, ชื่อ, อีเมล, โทรศัพท์, โทรศัพท์, มือถือ, user_type, create_by, create_date, update_by, update_date, หมายเหตุ, login_flag, photo, qrcode, del_flag, dept_id, staff_id, โรงเรียน) #{รหัสผ่าน}, #{no}, #{ชื่อ}, #{อีเมล}, #{โทรศัพท์}, #{มือถือ}, #{userType}, #{createBy.id}, #{CreateTate}, #{updateTate}, #{remarks}, #}, #}, #}, #} #{qrcode},#{delflag},#{dept.id},#{staff.id},#{school.id}) </แทรก> <!-คำสั่งอัปเดตพารามิเตอร์เป็นวัตถุผู้ใช้-> <อัปเดต ID = "อัปเดต" #{loginName}, password = #{รหัสผ่าน}, no = #{no}, name = #{ชื่อ}, อีเมล = #{email}, โทรศัพท์ = #{โทรศัพท์}, mobile = #{mobile}, user_type = #{userType}, update_by = #upadate #{motarks}, login_flag = #{loginflag}, photo = #{photo}, qrcode = #{qrcode}, โรงเรียน = #{school.id} โดยที่ id = #id} </update> <! การลบผู้ใช้-> <อัปเดต id = "deleteByLogic"> อัปเดต sys_user set del_flag = #{del_flag_delete} โดยที่ id = #}