iBatis에서 Dynamic 기능중 iterate 노드가 있다.
예를 들어 
"select * from tableName where idx in ('3','6','9')" 
와 같이 조건절에 or절이 아닌 in 으로 쿼리를 구성할때 iBatis에서는 iterate 구문으로 구현이 가능하다.

먼저 파라메터클래스로 넘겨줄 값을 배열형식의 맵으로 생성한다.


ArrayList<String> idxList = new ArrayList<String>();
idxList.add("3");
idxList.add("6");
idxList.add("9");
....
HashMap<String, ArrayList<String>> idxMap = new HashMap<String, ArrayList<String>>() ;
idxMap.put("idxArr", idxList);


그리고 iBatis query.xml 파일에 아래처럼 작성한다.


<select id="getList" parameterClass="idxMap" resultClass="dataVO">
   select * from table
  <dynamic prepend="where">
    <isNotEmpty prepend="and" property="idxArr">
      <iterate prepend=" idx in " property="idxArr" open="(" close=")" conjunction=",">
        #idxArr[]#
      </iterate>
    </isNotEmpty>
  </dynamic>
</select>


그러면 iBatis에서 내부적으로 
select * from table where idx='3' or idx='6' or idx='9'
이런 쿼리로 만들어서 실행하게 된다.
위에서 dynamic 의 prepend 속성으로 "where" 가 지정되어 있지만 하위 요소의 조건이 하나라도 만족하지 않으면 sql 문에 추가되지 않는다. 그리고 하위 요소로 isNotNull 태그에 prepend="and" 는 처음 true 가 되는 조건의 prepend 는 parent 인 dynamic 의 prepend 인 "where" 로 덮어진다.


$property명$ 로 작성된 영역은 #property명# 와 같이 prepared statement 의 바인드 변수로 처리되는 것이 아니라 
SQL 문 자체에 텍스트가 replace 되어 처리됨에 유의한다. 


'Programming > 개발 노트' 카테고리의 다른 글

mht가 이상하게 열린다?!  (0) 2014.02.19
입력값에 null/Empty 있는 경우 처리  (0) 2013.12.24
VirtualBox 다루기!!  (0) 2013.10.29
forward와 redirect의 차이  (0) 2013.10.28
by 으스스 2013. 12. 24. 10:06

JSTL 에서 null 이 아닌 것에 대한 조건을 어떻게 하는가를

 

고민 할 수 있다

 

보통

 

<c:if test="${param.data != ''}">

 

라고 쓸 것이지만 이렇게 쓰면 null 처리가 정상적으로 안되는 경우가 발생한다.

 

그래서 이럴 땐

 

<c:if test="${param.data != '' || param.data ne null}">

 

로 사용 하면 된다. (ne 는 not equal 인 것으로 보인다.)

 

반대로 equal 을 찾을 땐

 

< c:if test="${param.data eq null }">

 

로 조건을 걸면 된다.


출처 : http://shonm.tistory.com/entry/JSP-JSTL-null-equal-%EA%B4%80%EB%A0%A8-%EB%AC%B8%EB%B2%95

오류처리 하다가 찾아본 내용이었는데 요컨데..

<c:if test="${param.cmd eq 'viewEditBoard' || 'viewAddBoard'}"> (X)

<c:if test="${param.cmd eq 'viewEditBoard' || param.cmd eq 'viewAddBoard'}"> (O)

라는 단순한 오류였다.. =ㅅ=


by 으스스 2013. 11. 27. 11:57

1. 설치 방법


Virtual Box를 이용해 MAC에 윈도우7 설치하기

 - http://imonis.net/92

 - mac에서 설치, 간략한 설명

 

[VirtualBox/Oralce] VM VirtualBox에 Oracle 설치하기

 - http://beans9.tistory.com/9

 - 윈도우에서 설치, 간략한 설명

 

VirtualBox 사용 방법 #1 : 프로그램 설치와 기본 설정 방법

 - http://blog.naver.com/hahaj1/20120351817

 - 윈도우에서 설치, 여러 포스트에 걸쳐 살세한 설명

 

VirtualBox에서 USB 메모리로 부팅하기‎

-http://www.cdrinfo.co.kr/entry/VirtualBox%EC%97%90%EC%84%9C-USB-%EB%A9%94%EB%AA%A8%EB%A6%AC%EB%A1%9C-%EB%B6%80%ED%8C%85%ED%95%98%EA%B8%B0

 - USB에 설치된 윈도우로 이미지를 만든 후, 이를 이용하여 설치하는 방법

 

2. 속도 향상 방법

 

VirtualBox - 가상 PC의 인터넷 속도가 느릴때

 - http://veldise.tistory.com/91

 - 가상 머신 설정 - 네트워크 에서 어댑터 연결 바꿈.

 - NAT => 브리지 어댑터

 

VirtualBox 좀더 빠르게 써보자

 - http://blog.spowner.com/19

 - 호스트 I/O 캐시 사용하기를 체크하여 체감효과 봄. => 경험상.

 - 호스트가 윈도우일 경우: 빠름, 우분투일 경우: 느림, 맥일 경우는 기본 설치 시 옵션 켜 있음.

 - 옵션을 껐을 때 효과를 본다는 글: http://ihoney.pe.kr/920

 

3. 기타 문제해결

 

윈도우 부팅 후 메뉴의 "장치 → 게스트 확장 설치"로 VirtualBox Guest Additions를 설치할 수 없을 때

 - http://hummingbird.tistory.com/4447

 - 공개용 ftp (http://download.virtualbox.org/virtualbox/) 에서 버전에 맞는 VBoxGuestAdditions_x.x.x.iso 를 받아 설치

 

Mac OS의 VirtualBox에 Window 7을 설치했을 때

 - 오른쪽 cmd: 윈도우 키, 오른쪽 option 키: 한영 전환

 

Mac OS 에 VirtualBox 로 Windows 7 설치하기

 - http://ohgyun.com/394

 - Mac 에 Windows 7 설치 후, 몇 가지 팁

 

[Virtualbox] usb 인식이 안되는 문제 해결

 - http://blog.naver.com/newoverguy/130100804398

 

VirtualBox 하드 용량 늘리거나 줄이는 방법

 - http://blog.naver.com/PostView.nhn?blogId=vcmania&logNo=150240698

 - 동적 확장 저장소일 경우만 가능. 기존 이미지를 늘임. Mega 단위로 설정.

 - ex) VBoxManage modifyhd myOS.vdi --resize 20480


추가> VirtualBox 하드 용량 늘리거나 줄이는 방법(리눅스 파일 시스템 용량 변경 가능)

 - http://repository.egloos.com/5730315

 - 위의 용량 늘리기와 비슷하지만 가상 운영 체제(리눅스)의 용량도 조절할 필요가 있을때 사용.

 - 사실 위에꺼 안보고 이것만 봐도 됨.

 

How to resize a fixed size disk in VirtualBox

 - http://stuff.nekhbet.ro/2012/01/13/how-to-resize-a-fixed-size-disk-in-virtualbox.html

 - 고정 크기 저장소일 경우 적용. 새로 이미지를 생성하고 복사함.

 - ex) vboxmanage clonehd myOS.20gb.vdi myOS_30g.vdi

출처 : http://blog.naver.com/PostView.nhn?blogId=magtao&logNo=10166093924

1) 시키는대로 해도 안되는 것도 있는거 같다.. 너무 맹신하지는 말자.

2) 컴퓨터를 재부팅해야 동작하는 것도 있는거 같기도..

'Programming > 개발 노트' 카테고리의 다른 글

mht가 이상하게 열린다?!  (0) 2014.02.19
입력값에 null/Empty 있는 경우 처리  (0) 2013.12.24
[iBatis] Dynamic SQL, iterate  (0) 2013.12.24
forward와 redirect의 차이  (0) 2013.10.28
by 으스스 2013. 10. 29. 17:48
| 1 2 3 |