MyBatis로 프레임 워크 - 고급 매핑 결과적인 resultMap을 사용하여, 재산의 사용 수집

요구 사항 : 사용자의 사용자 정보와 주소 목록을 가져옵니다  

참조 모음을 추가 할 사용자 개체 클래스를 수정합니다.

/ **
* 박멸 사용자 ID,이 역할의 주소 정보를 얻을
파라미터 : 사용자 ID
* @return
* /
공공 사용자 getUserListAddressByUserID (@Param ( "사용자 ID") 정수 사용자 ID);

 

<된 resultMap 타입 = "사용자"ID = "userAddressList">
<ID 속성 = "ID"열 = "ID"/>
<속성 = "userCode '항목 ="userCode을 "결과 />
<속성 결과 ="사용자 이름 "열에 = "사용자 이름"/>
<속성 결과 = "userRole '항목 ="userRole "/>
<! - 동일 재사용하기 위해 참조 목록 컬렉션 클래스 사용자 클래스가, 그 결과적인 resultMap 컬렉션 소자 밖에 언급 사용하여 매핑 될 수있다, > -이 사용의 관계는 동일
"AddressList의로"<= 컬렉션 재산권 ofType = "주소" >
<속성 ID = "ID"열 = "B_ID"/>
<대지 결과 = "연락처"열 = "연락" />
<속성 결과 = "addressDesc '항목 ="addressDesc "/>
<결과 속성 ="TEL "열 ="TEL "/>
</ 수집>
</ 된 resultMap>
<SELECT ID = "getUserListAddressByUserID"된 resultMap = "userAddressList"parameterType = "정수">
선택 a. * b.id b_id, b.contact, b.addressdesc, b.tel smbms_user A로부터, B smbms_address 같은 곳을 a.id = b.userid 및 a.id = # {사용자 ID}
</ 선택>

  . 1  패키지 cn.smbms.pojo;
   2  
  . 3  가져 오기 java.util.Date;
   . 4  가져 오기 를 java.util.List;
   . 5  
  . 6 개  공용  클래스 사용자 {
   7.      개인 정수 ID; // ID 
  . 8      개인 문자열 userCode; // 사용자 코드 
  . 9      개인 userName에 문자열; // 사용자 이름 
(10)      개인 문자열있는 userPassword; // 사용자 암호 
(11)      개인 정수 성별;   // 섹스 
12      개인 날짜 생일;  // 생년월일 
(13)      개인 문자열 전화;    // 전화 
(14 개)      개인 문자열 주소; // 주소 
15      개인 정수 userRole;     // 사용자 역할 
(16)      개인 정수 createdBy;    // 창조자 
(17)      개인 날짜에서 CreationDate; // 만든 
18      개인 정수 modifyBy;      // 갱신 
(19)      개인 날짜 ModifyDate;    // 업데이트 
(20)      개인 역할의 역할; // 사용자 역할 
(21)    개인 목록 <주소> AddressList의; //一个用户有多个地址列表
22      
23      
24      
25      공개 목록 <주소> getAddressList () {
 26          반환 AddressList의;
27      }
 28      공공  공극 setAddressList (목록 <주소> AddressList의) {
 29           .addressList = AddressList를;
30      }
 31      공용 역할 getRole () {
 32          반환 역할;
33      }
 34      공공  공극 setRole (역할 역할) {
 35           .role =역할;
36      }
 37      공용 정수 getId () {
 38          반환 ID;
39      }
 40      공공  공극 setId (정수 ID) {
 41           .ID = ID;
42      }
 43      공용 문자열 getUserCode () {
 44          반환 userCode;
45      }
 46      공공  공극 setUserCode (문자열 userCode) {
 47           .userCode = userCode;
48      }
 49      공공 문자열 getUserName 메서드 () {
50          사용자 이름 :
51      }
 52      공공  공극 setUserName (문자열의 userName) {
 53           .userName = userName에;
54      }
 55      공용 문자열 getUserPassword () {
 56          반환 userPassword에;
57      }
 58      공공  공극 setUserPassword (userPassword에 문자열) {
 59           .userPassword = userPassword에;
60      }
 61      공용 정수 getGender () {
 62          반환 성별;
(63)     }
 64      공공  공극 setGender (정수 성별) {
 65           .gender = 성별;
66      }
 67      대중 날짜 getBirthday () {
 68          반환 생일;
69      }
 70      공공  공극 setBirthday (생일 날짜) {
 71           .birthday = 생일;
72      }
 73      공용 문자열 getPhone () {
 74          반환 전화;
75      }
 76      공공  무효 setPhone (문자열 전화) {
(77)           잘한다 = 전화;
78      }
 79      공용 문자열 getAddress에 () {
 80 개          리턴 어드레스;
81      }
 82      공공  공극 setAddress (문자열 주소) {
 83           .address = 주소;
84      }
 85      공용 정수 getUserRole () {
 86          반환 userRole;
87      }
 88      공공  공극 setUserRole (정수 userRole) {
 89           .userRole = userRole;
(90)     }
 91      공용 정수 getCreatedBy () {
 92          반환 createdBy;
93      }
 94      공공  공극 setCreatedBy (정수 createdBy) {
 95           .createdBy = createdBy;
96      }
 97      공개 일자 getCreationDate () {
 98          반환 에서 CreationDate;
99      }
 100      공용  공극 setCreationDate (날짜에서 CreationDate) {
 101           .creationDate = 에서 CreationDate;
102      }
 103      공개정수 getModifyBy () {
 104          modifyBy;
105      }
 106      공용  공극 setModifyBy (정수 modifyBy) {
 107           .modifyBy = modifyBy;
108      }
 109      공개 일자 getModifyDate () {
 110          modifyDate;
111      }
 112      공용  공극 setModifyDate (날짜 modifyDate) {
 113           .modifyDate = modifyDate;
114      }
 115 }
1  @Test
 2      공개  공극 testGetUserListAddressByUserId () {
 3          SQLSESSION SQLSESSION = ;
4          목록 <사용자> 여기서 userList = 새로운 ArrayList를 <사용자> ();
5          사용자 사용자는 = 사용자 ();
6          시도 {
 7              SQLSESSION = MyBatisUtil.createSqlSession ();
8              
9          
10              사용자 = sqlSession.getMapper (UserMapper. 등급 ) .getUserListAddressByUserID (1 );
11              
12          } 캐치(예외 E) {
 13이다              // : 예외 핸들 TODO 
14              ; e.printStackTrace ()
 15          } 최종적 {
 16              MyBatisUtil.closeSqlSession (SQLSESSION)
 17.          }
 18은          속성 클래스 // 제거 역할이되는 
19 logger.debug는 ( " 역할 ID testGetUserListByRoleId "user.getUserCode + () +"와 사용자 이름 : "user.getUserName + () +"와 userRoleName : "+ 11111111) 
(20)는 라인 // 문구 콘솔에 있기 때문에, 손실되지 않습니다 로그 아웃이다 클래스에 대한 역할 속성 
: ( "testGetUserListByRoleId 역할 ID (21) // logger.debug을 + user.getUserCode () +"및 사용자 이름 : ""+ user.getUserName () + "와 userRoleName". + user.getRole () getRoleName ());
22 (주소 주소 : user.getAddressList ()) { 
23 logger.debug ( "testGetUserListAddressByUserId에 들어갔을 때 :"+ address.getContact () + "와 addressDesc :"+ address.getAddressDesc () + "및 전화 :"+ 주소. getTel ()); 
} 24 
25          
26      }

 

 

추천

출처www.cnblogs.com/dongyaotou/p/12006132.html