MyBatisのマッピングファイルの書き込み方法は多様であり、実際の開発プロセス中に、開発時間とメンテナンス時間に異なる執筆方法と使用法が大きな違いをもたらします。今日は、誰もが変更して推奨するための比較的単純なマッピングファイル作成方法を記録し、最適な書き込み方法を見つけようとします~~:
ユーザーオブジェクトとusermap.xmlを説明する例として、コードは次のとおりです。
ユーザーはユーザーエンティティクラスです(説明のみで、参照型変数にのみ集中でき、get/setメソッドは省略されています):
com.google.common.collect.lists; Import com.gukeer.common.persistence.dataentity; Import com.gukeer.modules.personal.entity.dept; import com.gukeer.modules.modules.personal.entity.staff; import com.gukeer.modules.modules.entico.school java.util.date;/*** user entity ** auther:cc*date:2016/9/2*/public class users extends dataentity <user> {private static final long serialversionuid = 1l; private string id; private office Company; //民間事務所事務所; //プライベート文字列loginname; //ログイン名プライベート文字列パスワード; //パスワードプライベート文字列番号; //作業番号プライベート文字列名。 //名前のプライベート文字列メール。 //プライベート文字列電話にメールしてください。 //電話プライベート文字列モバイル。 //モバイルプライベート文字列usertype; //ユーザータイププライベート文字列loginip; // Last Login iPprivate date logindate; //最終ログイン日プライベート文字列loginflag; //プライベート文字列写真へのログインを許可するかどうか。 // Avatar Private String QRCode; // QRコードプライベート文字列OldLoginName; //オリジナルログイン名プライベート文字列newPassword; //新しいパスワードPrivate String OldLoginip; // last login ipprivate date oldlogindate; //最終ログイン日プライベート部門。 //部門の民間スタッフ。 //プライベートロールの役割を位置付けます。 //役割に基づくユーザー条件プライベートリスト<lole> rolelist = lists.newarraylist(); //所有者の役割リスト私立学校学校。 //属性プライベート文字列の備考。 //ノートプライベートユーザーCreateBy。 // Creator Private Date Createdate; //作成日プライベートユーザーアップデートビー。 //アップデータープライベートデートアップデート。 //プライベート文字列delflagを更新しました。 //マークを削除する(0:通常; 1:削除; 2:レビュー)}参照タイプのメンバー変数の場合、クエリプロセス中に値を直接割り当てるために、クエリの結果をマッピングファイルに設定した返された結果に割り当てることができます。
<?xml version = "1.0" encoding = "utf-8"?> <!doctype mapper public " - // mybatis.org//dtd mapper 3.0 // en" "http://mybatis.org/dtd/mybatis-3-mapper.dtd namespace = "com.gk.modules.sys.dao.userdao"> <! - キーポイントは、このセクションであり、a.company_id as "company.id"など、a.company_id as a.company_idなど、オブジェクトのメンバー変数に保存されたIDフィールドを直接割り当てます。 <! - もちろん、会社の参照型変数は、この方法を使用して割り当てることもできます。複数のテーブルを左結合してチェックできます。これは、データベースクエリの操作です。これはここでは説明されていません - > <sql id = "usercolumns"> a.id、a.company_id as "company.id"、a.office_id as "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 "upduteby.id"、a.update_date、a.del_flag、c.name as "company.name"、c.parent_id as "company.parent.id"、c.parent_ids as "company.area.id"、ca.name as "company.area.name 「company.area.parentids」、o.name as "office.name"、o.parent_id as "office.parent.id"、oa.id as "office.area.id"、oa.name as "office.area.name"、oa.parent_id as "office.area.parent.id "company.primaryperson.id"、cu.name as "company.primaryperson.name"、cu2.id as "company.deputyperson.id"、cu2.name as "company.deputyperson.name"、ou.id as "office.primaryperson.id"、ou2.id as " "office.deputyperson.name"、sc.xxlx as "school.xxlx"、sc.xxmc as "school.xxmc" </sql> <sql id = "userjoins">左に参加するsys_office c on c.id = a.company_idleft in sys_are ca a.office_idleft Join sys_area oa on oa.id = o.area_idleft in sys_user cu on cu.id = cu2.id on sys_user cu2 on = c.deputy_personleft Join sys_user ou on ou.id = o.primary_personleft on = o.primary_personleft sys_userに参加するo.deputy_personleft Join xj_school sc on sc.id = a.school </sql> <! - queryステートメント、id query resultによると、return型はユーザーが直接記述できますが、異なる構成結果マップはxml-> <> <select id = "getuserbumns"/selecttype = " sys_user a <include refid = "userjoins"/>ここでa.id =#{id} </select> <! - queryステートメント、ユーザーオブジェクトに基づくクエリ、ここでのパラメーターはユーザー変数です - > <select id = "getbyloginname" getbyloginname "getbyloginname" getbyloginname "resulttype =" user "user" parametertype = "ユーザー" refid = "userjoins"/> where a.login_name =#{loginname}およびa.del_flag = {del_flag_normal} </select> <! - パラメーターはユーザーオブジェクトでなければなりません - > <挿入id = "挿入"> sys_user(id、commone_id、login_name、login_name、login_ name、login_id、login_id、login_id、login_id、login_id、login_id、login_id、no、pisshr user_type、create_by、create_date、create_date、update_by、update_date、備考、login_flag、写真、qrcode、del_flag、dept_id、stuff_id、school)values(#{id}、{company.id}、#{office.id}、#{loginname}、{loginname}、#{no} #{email}、#{phone}、#{mobile}、#{usertype}、#{createby.id}、#{createdate}、#{updatedate}、#{remarks}、#{loginflag}、#{photo}、 #{qrcode}、#{delflag}、#{dept.id}、#{stuff.id}、#{school.id})</insert> <! - uppartatemetersはユーザーオブジェクトです。 #{loginname}、password =#{password}、no =#{no}、name =#{name}、email =#{email}、phone = {phone}、mobile =#{mobile}、user_type =#{usertype}、update_by = {update = {update = {update_date_date =#{update_date #{remarks}、login_flag =#{loginflag}、photo =#{photo}、qrcode = {qrcode}、school =#{school.id}ここで、id =#{id} </update> </update> <! - ユーザーの物理的削除 - >ユーザーの削除 - > <update id = "deletebylogic">更新sys_user set del_flag =#{del_flag_delete} where id = {id} </update> </mapper>