Mybatis의 매핑 파일 쓰기 방법은 다양하며 다양한 작문 방법과 사용법은 실제 개발 프로세스 중에 소비되는 개발 시간과 유지 보수 시간에 큰 차이가 있습니다. 오늘 저는 모든 사람이 수정하고 추천 할 수있는 비교적 간단한 매핑 파일 작성 방법을 기록하고 최고의 작문 방법을 찾으려고 노력할 것입니다 ~~ :
사용자 객체와 usermap.xml을 사용하여 설명 할 예제로 코드는 다음과 같습니다.
사용자는 사용자 엔티티 클래스입니다 (설명 만 용 참조 유형 변수에만 집중할 수 있으며 GET/SET 메소드가 생략 됨) : :
import com.google.common.collect.lists; import com.gukeer.common.persistence.dataentity; import com.gukeer.modules.personal.entity.dept; import com.gukeer.modules.personal.entity.staff; import com.gukeer.modules.schoom.schoom.school.school.schoom.schoom.schoom.schoom.schoopmort java.util.date;/*** 사용자 엔티티 ** Auther : CC*날짜 : 2016/9/2*/공개 클래스 사용자 확장 데이터 엔티티 <user> {개인 정적 최종 Long SerialVersionUid = 1L; 개인 사무실 회사; // 개인 사무실 사무실; // 개인 문자열 loginName; // 로그인 이름 개인 문자열 비밀번호; // 비밀번호 개인 문자열 번호; // 작업 번호 개인 문자열 이름; // 개인 문자열 이메일 이름; // 전자 메일 개인 문자열 전화; // 전화 개인 문자열 모바일; // 모바일 개인 문자열 userType; // 사용자 유형 개인 문자열 loginip; // 마지막 로그인 IPPRIVATE 날짜 로그인; // 마지막 로그인 날짜 개인 문자열 loginflag; // 개인 문자열에 로그인을 허용할지 여부; // Avatar 개인 문자열 QRCode; // QR 코드 개인 문자열 OldLoginName; // 원본 로그인 이름 개인 문자열 newPassword; // 새 비밀번호 개인 문자열 OldLoginip; // 마지막 로그인 ipprivate 날짜 oldlogindate; // 마지막 로그인 날짜 개인 부서; // 부서 개인 직원; // 개인 역할 역할 위치; // 역할 비공개 목록을 기반으로 한 쿼리 사용자 조건 <brole> rolelist = lists.newarrayList (); // 소유자 역할 목록 사립 학교; // 속임수 개인 문자열 비고; // 참고 개인 사용자 CreateBy; // Creator Private Date Creadate; // 생성 날짜 비공개 사용자 업데이트; // 업데이트 개인 날짜 업데이트; // 업데이트 된 날짜 개인 문자열 delflag; // mark 삭제 (0 : normal; 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"><<<<<<<<<1mapper 네임 스페이스 = "com.gk.modules.sys.sys.dao.userdao"> <!-핵심 요점은이 섹션입니다.이 섹션은 데이터베이스에서 저장된 ID 필드를 객체의 멤버 변수에 직접 할당하는이 섹션입니다. a.company_id와 같은 a.company_id와 같은 a.company_id와 같은 "Company.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.Create_by As "CreateBy.id", A.Create_, A.Create_by "updateby.id", a.update_date, a.del_flag, c.name as "company.name", c.parent_id as "company.parent.id", c.parent_ids as "company.parentids", ca.id as "company.id", ca.name As "Company.area.name" "company.area.parentids", o.name as "office.name", o.parent_id as "office. "company.primaryperson.id", cu.name As "Company.primaryperson.name", Cu2.id "Company.deputyperson.id", Cu2.Name AS "Company.DeputyPerson.Name", ou.id로 "Office.primaryperson.name으로", OU.DAM ", OU. "Office.deputyperson.id", ou2.name AS "Office.deputyperson.name", sc.xxlx as "school.xxlx", sc.xxmc as "school.xxmc"</sql> <sql id = "userjoins"> 왼쪽 _ join sys_office c on c.id = a.company_idleft join sys_areaid = a. c.area_idleft 가입 sys_office o on o.id = a.office_idleft 가입 sys_area oa on oa.id = o.area_idleft on sys_user cu on cu.id = cu.id = cu.id = cu2 on cu2에서 sys_user cu2 on cu2 on ou.id = o ou.id = o ou.id = o ou. ou2.id = o.deputy_personleft에서 sys_user ou2를 가입합니다. sc.id = a.school </sql> <!-쿼리 문의 xj_school sc에 가입하십시오. id 쿼리 결과에 따라, ID 쿼리 결과에 따라 반환 유형은 사용자가 직접 작성할 수 있지만, 다른 구성 결과는 xml-> <select id = "select id ="select id = "select id ="select id = "select id"> refid = "usercolumns"/> from sys_user a <includ refid = "userjoins"/> 여기서 a.id = #{id} </select> <!-쿼리 문, 쿼리, 사용자 개체를 기반으로 쿼리, 여기서 매개 변수는 id = "getByLoginName"resulttype = "user <user"> include ""include "입니다. refid = "usercolumns"/> from sys_user a <includ refid = "userjoins"/> 여기서 a.login_name = #{loginname = #{del_flag_normal} </select> <! 삽입, insert id = "insert", insert " Office_id, login_name, password, no, 이름, 이메일, 전화, mobile, user_type, create_by, create_date, update_by, update_date, 비고, login_flag, photo, qrcode, del_flag, dept_id, school, school, school, school ( #{id}, #{company.id}, #{rocce #{password}, #{no}, #{name}, #{email}, #{phone}, #{mobile}, #{usertype}, #{createby.id}, #{createate}, #{updated}, #{warlings}, #{loginflag}, #{{whome}, #. #{qrcode},#{delflag},#{dept.id},#{staff.id},#{school.id}) </insert> <!-업데이트 문도 사용자 객체도 사용자 객체도 업데이트 "> update sys_user set company_id = {company.id}, Office}, office.id} #{loginname}, password = #{password}, no = #{no}, name = #{name}, email = #{email}, 폰 = #{phone}, mobile = #{mobile}, user_type = #{usertype}, update_by = #{updateby.id}, update_date = # #{uppatteated}, shareings = #{warlings}, login_flag = #{loginflag}, photo = #{photo}, qrcode = #{qrcode}, school = #{school.id} where id = #{id} </update> <! 사용자 삭제-> <업데이트 id = "deletebylogic"> 업데이트 sys_user set del_flag = #{del_flag_delete} id = #{id} </update> </mapper>