Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 러너
- 서울 흑산도홍어
- Running 연습
- 가민 인터벌 러닝
- 가민 크로노스
- github command
- java lombok
- MongoDB foreach
- 의정부 콩나물국밥 맛집
- 인터벌러닝
- 가민 크로노스 러닝
- MongoDB mongoimport
- 의정부 전주콩나물국밥
- 의정부역 콩나물국밥
- Garmin Chronos
- 신대방삼거리역 홍어
- 10KM 러닝
- lombok
- 신대방삼거리역 흑산도홍어
- 가민
- 신설동역 맛집
- java 알고리즘
- 인터벌 러닝
- 서울 홍어삼합
- 의정부 전주본가
- 알고리즘
- 마라톤
- 10k 마라톤
- 의정부시청역 콩나물국밥
- 가민 크로노스 인터벌 러닝
Archives
- Today
- Total
나의 Winding Road
MyBatis foreach문(객체 배열 처리) 본문
[2017-05-19 금요일]
* 내용: MyBatis foreach문을 활용한 객체 배열 처리
1. json 객체 배열 생성
2. pojo 형태의 VO 생성
3. ArrayList로 변경
4. MyBatis foreach
※ MyBatis에서 객체 배열로 동적 쿼리를 생성해야 될 필요가 있을 때 사용하는 foreach문에 대한 사용법
1. json 객체 배열 생성
* 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | $("#btn_select").click(function(){ var list = $("#table_list"); var selectedRows = list.getGridParam('selarrrow'); var analysis_code_set = ""; var analysis_code = ""; var analysis_sdate = ""; var analysis_edate = ""; var jsonArray = []; for(var i = 0; i < selectedRows.length; i++) { var rowData = list.getRowData(selectedRows[i]); if(i == selectedRows.length - 1) analysis_code_set += rowData.ANALYSIS_CODE; else analysis_code_set += rowData.ANALYSIS_CODE + "/"; analysis_code = rowData.ANALYSIS_CODE; analysis_sdate = rowData.APPLY_START_DATE; analysis_edate = rowData.APPLY_END_DATE; var params = { analysisCode : analysis_code, analysisSdate : analysis_sdate, analysisEdate : analysis_edate } jsonArray.push(params); } if(analysis_code_set == "") { return; } else { var params = { analysis_code_set : analysis_code_set, analysis_code_arr : JSON.stringify(jsonArray) }; console.log(params); opener.fn_set_input_analysis_std( params ); self.close(); } }); | cs |
2. pojo 형태의 VO 생성
* 코드
※ 1번에서 파란색으로 표시한 변수명과 똑같이 세팅한다
* 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | public class AnalysisCodeVO { private String analysisCode; private String analysisSdate; private String analysisEdate; public String getAnalysisCode() { return analysisCode; } public void setAnalysisCode(String analysisCode) { this.analysisCode = analysisCode; } public String getAnalysisSdate() { return analysisSdate; } public void setAnalysisSdate(String analysisSdate) { this.analysisSdate = analysisSdate; } public String getAnalysisEdate() { return analysisEdate; } public void setAnalysisEdate(String analysisEdate) { this.analysisEdate = analysisEdate; } } | cs |
3. ArrayList로 변경
* 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 | String jsonAnalysisCodeArr = request.getParameter("analysis_code_arr"); AnalysisCodeVO[] arrAnalysisCode = gson.fromJson(jsonAnalysisCodeArr, AnalysisCodeVO[].class); // json String → array if(arrAnalysisCode != null && arrAnalysisCode.length != 0) { ArrayList<AnalysisCodeVO> arrListAnalysisCode = new ArrayList<AnalysisCodeVO>(Arrays.asList(arrAnalysisCode)); searchMap.put("analysis_code_arr", arrListAnalysisCode); } else { ArrayList<AnalysisCodeVO> arrListAnalysisCode = new ArrayList<AnalysisCodeVO>(); searchMap.put("analysis_code_arr", arrListAnalysisCode); } | cs |
4. MyBatis foreach
※ 객체의 속성 값을 칼럼으로 사용할 때는 $문자를, 값으로 사용할 때는 #문자를 앞에 붙여 사용한다.
* 코드
1 2 3 4 5 6 7 8 9 10 | <choose> <when test=' analysis_code_arr.size != 0 '> AND ( 1 = 1 AND <foreach collection="analysis_code_arr" item="item" index="index" open="(" separator="OR" close=")"> ( ${item.analysisCode} = '○' AND ANALYSIS_DATE BETWEEN #{item.analysisSdate} AND #{item.analysisEdate} ) </foreach> ) </when> </choose> | cs |
'개발 > Spring' 카테고리의 다른 글
Apache POI 3.15를 사용한 엑셀 다운로드 기능 (2) | 2017.04.28 |
---|---|
eclipse java version 에러 (0) | 2015.12.28 |
Comments