Методы написания картинов Mybatis разнообразны, и различные методы и использование письма имеют большую разницу во время разработки и технического обслуживания, потребляемого во время реального процесса разработки. Сегодня я запишу относительно простой метод написания файлов отображения для всех, чтобы изменить и рекомендовать, и попытаюсь найти лучший метод написания ~~:
Возьмите объект пользователя и usermap.xml в качестве примера для объяснения, код следующим образом:
Пользователь - это класс объектов пользователя (только для объяснения, вы можете сосредоточиться только на переменных типа ссылки, а метод GET/SET опущен):
Импорт com.google.common.collect.lists; import com.gukeer.common.persistence.dataEntity; import com.gukeer.modules.personal.entity.dept; импорт com.gukeer.modules.personal.entity.staff; import com.gukeer.modules.school.Entity.school; AUTHER: CC* Дата: 2016/9/2*/Public Class Пользователь Extens DataStity <user> {Private Static Long Long SerialVersionUID = 1L; Private String ID; частная офисная компания; // частное офис офиса; // private String loginName; // Имя входа в систему частной строки пароль; // пароль частная строка no; // Рабочий номер частное название строки; // имя частной строки электронной почты; // электронная почта частной строки телефона; // Телефон частная строка мобильная строка; // Mobile Private String usertype; // пользователь тип частной строки loginip; // Последний логин IPPrivate Date Logindate; // Последняя дата входа в систему частной строки loginflag; // Допустить ли вход в частную строку фото; // avatar private String qrcode; // QR Code Private String OldLoginName; // Исходное имя входа в систему частной строки newPassword; // новый пароль частная строка OldLoginip; // Последний логин Ipprivate Date OldLogindate; // Последняя дата входа в отдельный отдел отдельного отделения; // отдельный персонал частного персонала; // позиционировать частную роль; // Запрос условий пользователя на основе роли частного списка <Sole> rolelist = lists.newarraylist (); // Владелец ролевой список частной школы; // Атрибутор частных строковых замечаний; // Примечания частного пользователя CreateBy; // Creator Private Date Catenate; // Дата создания частного пользователя UpdateBy; // Updater частная дата обновляется; // Обновленная дата частная строка Delflag; // Удалить Mark (0: нормально; 1: DELETE; 2: Review)}Для переменных членов эталонных типов для непосредственного назначения значений во время процесса запроса результаты запроса могут быть назначены возвращаемому результату, установленному в файле отображения:
<? 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"> mapper.org/dtd/mybatis-3-mapper.dtd"> mapper. namespace = "com.gk.modules.sys.dao.userdao"> <!-Ключевым моментом является этот раздел, непосредственно присваивая поле идентификатора, сохраненное базой данных, члена объекта, такая как A.company_id как «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_by as "CreateBy.id ', A. "UpdateBy.id", A.Update_Date, A.Del_Flag, C.Name As "company.Name", c.parent_id как "company.parent.id", c.parent_ids как "company.parentids", ca.id as "company.area.id", ca.name как "company.area.name", ca.parent_id as "as" are.parent.parent.parent.parent. "company.area.parentids", o.name как "office.name", o.parent_id как "Office.parent.id", oa.id как "Office.area.id", Oa.name как "Office.area.name", Oa.parent_id как "Office.area.parent.id", oa.parent_ids as "affere.Arentids. "company.primaryperson.id", cu.name as "company.primaryperson.name", cu2.id как "company.deputyperson.id", cu2.name как "company.deputyperson.name", ou.id как "Office.primaryperson.id", ou.name as "uffice.primary.name. "Office.deputyperson.id", ou2.name как "Office.deputyperson.name", sc.xxlx как "school.xxlx", sc.xxmc as "school.xxmc" </sql> <sql id = "userjoins"> nain sys_office c on c.id = a.company_idleft C.Area_Idleft Присоединяйтесь к sys_office o on o.id = a.office_idleft quie sys_area oa on oa.id = o.area_idleft quip sys_user cu on cu.id = c.primary_personleft присоединяется к sys_user cu2 on cu2 JOIN sys_user ou2 ON ou2.id = o.deputy_personLEFT JOIN xj_school sc ON sc.id = a.school</sql><!-- Query statement, according to the Id query result, the return type can be written directly by User, while different configuration resultMap omits the time to write the xml --><select id="getUserById" resultType="User">SELECT<include RefId = "usercolumns"/> from sys_user a <include refid = "userjoins"/> where a.id = #{id} </select> <!-оператор запроса, запрос на основании пользовательского объекта, параметры здесь-пользовательская переменная-> <select id = "getbyloginname" refultype = "user" RefID = "usercolumns"/> из sys_user a <включить refid = "userjoins"/>, где a.login_name = #{loginname} и a.del_flag = #{del_flag_normal} </select> <!-insert, параметры должны быть пользовательски Office_ID, login_name, пароль, нет, имя, электронная почта, телефон, мобильный, пользователь, user_type, create_by, create_date, uppalt_by, update_date, remerks, login_flag, photo, qrcode, del_flag, dept_id, staff_id, school) values ( #{id}, { #{worm. #{Password}, #{no}, #{name}, #{email}, #{phone}, #{mobile}, #{usertype}, #{createby.id}, #{createdate}, #{photo #{qrcode},#{delflag},#{dept.id},#{staff.id},#{school.id}) </insert> <!-Оператор обновления, параметры также являются пользовательскими объектами-> <Обновление идентификатор = update "> Обновление sys_user set over_id =#{office_id =######## #{loginName}, password = #{password}, no = #{no}, name = #{name}, email = #{email}, phone = #{phone}, mobile = #{mobile}, user_type = #{usertype}, update_by = #{update.id}, update_date = nefortate = #{remarks}, login_flag = #{loginflag}, photo = #{photo}, qrCode = #{qrCode}, School = #{School.id}, где id = #{id} </update> <!-Физическая удаление пользователя-> <edupt ad = "delete"> delete where из sys_user where wude wude wead} <edude eduete "> delete whed whed wudtete} <edude udete" Удаление пользователя-> <educt id = "deletebylogic"> Обновление sys_user set del_flag = #{del_flag_delete}, где id = #{id} </update> </mapper>