MyBatis 'Zuordnungsdatei -Schreibmethoden sind vielfältig, und unterschiedliche Schreibmethoden und -nutzungen haben einen großen Unterschied in der Entwicklungszeit und der Wartungszeit, die während des tatsächlichen Entwicklungsprozesses verbraucht werden. Heute werde ich eine relativ einfache Mapping -Datei -Schreibmethode aufzeichnen, die alle ändern und empfehlen können, und versuchen, die beste Schreibmethode zu finden ~~:
Nehmen Sie das Benutzerobjekt und usermap.xml als Beispiel, um zu erklären. Der Code lautet wie folgt:
Der Benutzer ist eine Benutzerentitätsklasse (nur zur Erläuterung können Sie sich nur auf Referenztypvariablen konzentrieren, und die Methode GET/SET wird weggelassen):
import com.google.common.collect.lists; import com.gukeer.common.persistence.dataentity; import com.gukeer.modules.personal.Entity java.util.date;/*** Benutzerentität ** Auther: CC*Datum: 2016/9/2*/Public Class User erweitert DataEntity <Beer> {private statische endgültige long serialversionuid = 1l; private String -ID; private Büro -Firma; // Privatbürobüro; // private Zeichenfolge LoginName; // Anmeldenname private Zeichenfolge Passwort; // Passwort private Zeichenfolge Nr.; // Arbeitsnummer privater Zeichenfolge Name; // private Zeichenfolge E -Mail nennen; // E -Mail private Zeichenfolge Telefon; // Telefon private Zeichenfolge Mobile; // Mobile private String userType; // Benutzertyp private String -Loginip; // Letzte Login ipprivate Datum logindat; // Letzte Anmeldedatum private Zeichenfolge Loginflag; // ob Anmeldung zum privaten Zeichenfolgenfoto zuzulassen; // Avatar Private String QRCode; // QR -Code privater String alterlogInname; // Original Anmeldung Name private Zeichenfolge NeuePassword; // Neues Passwort private Zeichenfolge Oldloginip; // Letzte Login Ipprivate Datum Oldlogindate; // Letztes Login -Datum private Abteilung; // Abteilung Privatpersonal; // private Rolle der privaten Rolle positionieren; // Benutzerbedingungen basierend auf der Rolle private Liste <rolle> rolelist = lists.NewarrayList (); // Eigentümer -Rollenliste Privatschule; // Attributor Private String Bemerkungen; // Notizen privater Benutzer createBy; // Creator Private Date erstellt; // Erstellungsdatum private Benutzeraktualisierung; // Updater Private Datum aktualisiert; // Aktualisiertes Datum private Zeichenfolge Delflag; // Marke löschen (0: Normal; 1: Löschen; 2: Überprüfung)}Für Mitgliedsvariablen von Referenztypen können die Abfrageergebnisse dem zurückgegebenen Ergebnis in der Zuordnungsdatei zugewiesen werden, um Werte während des Abfrageprozesses direkt zuzuweisen:
<? namespace = "com.gk.modules.sys.dao.userdao"> <! <!- Natürlich kann die Variablen des Referenztyps in der Firma auch mit dieser Methode zugewiesen werden. Mehrere Tabellen können durch das linke Join überprüft werden. Dies ist eine Operation in der Datenbankabfrage. Dies wird hier nicht erörtert-> <sql id = "usercolumns"> a.id, a.company_id als "firma.id", a.office_id als "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_by AS "createBy.id",a.create_date,a.update_by AS "updateBy.id", A.update_date, a.del_flag, C.Name als "Firma Als "Company.Area.Parentids", O.Name als "Office.Name", O.Parent_id als "Office.Parent.id", oa.id as "Office.Area.id", oa.name als "Office.Area.name", oa.parent_id as.area.Parent.Parent.Parent.Parent_IDS ", OA.PARENT_IS. "Company.Primaryperson.id", Cu.name als "Company.Primaryperson.name", Cu2.id als "Company.Deputyperson.id", cu2.name als "Company.Deputyperson.name", ou.id as "Office.primaryperson.id", ou.name as.Primary.Name.Name ", wie "Office.Deputyperson.id", ou2.name als "Office.deputyperson.name", sc.xxlx als "schul.xxlx", sc.xxmc als "schul.xxmc" </sql> < c.area_idLEFT JOIN sys_office o ON o.id = a.office_idLEFT JOIN sys_area oa ON oa.id = o.area_idLEFT JOIN sys_user cu ON cu.id = c.primary_personLEFT JOIN sys_user cu2 ON cu2.id = c.deputy_personLEFT JOIN sys_user ou ON ou.id = o.primary_personLEFT Join sys_user ou2 on ou2.id = o.deputy_personleft Join xj_school sc auf sc.id = a.School </sql> <!-Abfrageanweisung gemäß dem ID-Abfrageergebnis kann der Rückgabetyp direkt nach dem Benutzer geschrieben werden, während die Konfiguration der Konfiguration differenziert wird. refid="userColumns"/>FROM sys_user a<include refid="userJoins"/>WHERE a.id = #{id}</select><!-- Query statement, query based on the User object, the parameters here are the User variable--><select id="getByLoginName" resultType="User" parameterType="User">SELECT<include refid = "usercolumns"/> von sys_user a <include refid = "userJOins"/> wob login_name, password, nein, name, e -Mail, Telefon, mobil, user_type, create_by, create_date, update_by, update_date, rächen, login_flag, foto, qrcode, del_flag, dept_id, staff_id, schul) Werte ( #{id}, {lnosnn. #{password}, #{no}, #{name}, #{email}, #{phone}, #{mobile}, #{userType}, #{createBy.id}, #{createDate}, #{updateDate}, #{remarks}, #{loginFlag}, #{photo}, #{qrCode},#{delFlag},#{dept.id},#{staff.id},#{school.id})</insert><!-- Update statement, the parameters are also User objects--><update id="update">UPDATE sys_user SET company_id = #{company.id}, office_id = #{office.id}, login_name = #{loginName}, password = #{password}, no = #{no}, name = #{name}, email = #{email}, phone = #{phone}, mobile = #{mobile}, user_type = #{userType}, update_by = #{updateBy.id}, update_date = #{updateDate}, remarks = #{remarks},login_flag = #{loginFlag},photo = #{photo},qrcode = #{qrCode},school = #{school.id}WHERE id = #{id}</update><!-- Physical deletion of user--><update id="delete">DELETE FROM sys_user WHERE id = #{id}</update><!-- Logical Löschen von Benutzer-> <Update id = "DeleteByLogic"> Aktualisieren Sie sys_user set del_flag = #{del_flag_delete} wobei ID = #{ID} </update> </mapper>