'Web Programming > java-jsp' 카테고리의 다른 글
body onload event (0) | 2013.09.23 |
---|---|
ModelAndView (0) | 2013.09.23 |
location.href 의 바른사용 (0) | 2013.09.16 |
project.build.sourceencoding (0) | 2013.09.16 |
ibatis <dynamic>,<prepend> (0) | 2013.09.13 |
body onload event (0) | 2013.09.23 |
---|---|
ModelAndView (0) | 2013.09.23 |
location.href 의 바른사용 (0) | 2013.09.16 |
project.build.sourceencoding (0) | 2013.09.16 |
ibatis <dynamic>,<prepend> (0) | 2013.09.13 |
참고로...
location.replace('sample.htm');
으로 코딩을 하게 되어도, 주요 브라우저에서 정상적으로 작동을 하게 된다..
결론..
location.href = 'sample.htm';
location.replace('sample.htm');
위의 두 방식이 정확하게 작동한다.
[출처] location.href 의 정확한 사용법.|작성자 ONE WAY
ModelAndView (0) | 2013.09.23 |
---|---|
Spring Security (0) | 2013.09.16 |
project.build.sourceencoding (0) | 2013.09.16 |
ibatis <dynamic>,<prepend> (0) | 2013.09.13 |
remapResults="true" (0) | 2013.09.12 |
<properties>
<project.build.sourceencoding>UTF-8</project.build.sourceencoding>
</properties>
Spring Security (0) | 2013.09.16 |
---|---|
location.href 의 바른사용 (0) | 2013.09.16 |
ibatis <dynamic>,<prepend> (0) | 2013.09.13 |
remapResults="true" (0) | 2013.09.12 |
Ibatis 동적쿼리 (0) | 2013.09.12 |
ibatis 동적 쿼리 생성시 dynamic, prepend 용법과 설명
1. dynamic : where 절에 들어갈 하위 요소가 존재하면 where 를 sql문에 추가된다
맨처음 val1 에서 추가되는 prepend(AND)는 자동으로 사라진다.
2. prepend : 쿼리에 지정된 문자(AND)를 추가하여 해당 쿼리에 반영
Ex) AND, OR 가능
============================== Example ==============================
<dynamic prepend="WHERE">
<isNotEmpty property="val1" prepend="AND">
col1 = #val1#
</isNotEmpty>
<isNotEmpty property="val2" prepend="AND">
col2 = #val2#
</isNotEmpty>
</dynamic>
* 위 실행 type별 결과 :
1. val1, val2 둘다 값이 존재 : WHERE col1 = 'aaa' AND col2 ='bbb'
2. val1 만 값이 존재 : WHERE col1 = 'aaa'
3. val2 만 값이 존재 : WHERE col2 ='bbb'
4. 둘다 null 인 경우 : 추가되는 부분 없음
[출처] ibatis dynamic, prepend 용법, 설명 (하늘 Java) |작성자 프라임
location.href 의 바른사용 (0) | 2013.09.16 |
---|---|
project.build.sourceencoding (0) | 2013.09.16 |
remapResults="true" (0) | 2013.09.12 |
Ibatis 동적쿼리 (0) | 2013.09.12 |
HashMap<k,v> (0) | 2013.09.12 |
iBatis를 사용해서 쿼리작업을 하면 아래와같은 장점이 있다.
1. xml로 sql을 관리하므로 가독성이 높아진다.
2. db연결 정보도 conf로 관리하므로 수정하기 쉬워지며
3. 그래서 코드내에서 여러개의 db에 선택적으로 접근하기도 수월하다.(테스트/실장비 자유롭게 왔다갔다~)
4.ORMap을 해주기때문에 결과를 가져올때도 사용하기가 쉽다.
xml의 statement 내에서 변수들을 받을때 '#' 를 사용해서 변수를 접근한다.
그러나 테이블명/필드명들을 접근할때는 '$' 를 사용한다.
select * from $tablename$
이런식으로..
그런데, 여기서 테이블명이 바뀌면 읽어오는 필드명도 보통은 달라지게마련..
iBatis는 내부적으로 읽어온 결과의 metadata를 저장해두는데
읽어온 필드명이 달라지면 이전의 metadata와 mapping이 되지않아 에러를 발생시킨다.
이럴때 statement의 attribute로 "remapResults=true"를 추가해줘야 한다.
이렇게 되면 매번 metadata를 세팅하므로 사실은 오버헤드가 있지만 에러는 발생하지 않는다.
문서들을 찾아보면 이 오버헤드 때문에 꼭 필요한 경우가 아니면 이 attribute를 활성화하지 말라고 되어있는데
실제로 아래 두가지 경우를 테스트 했을때 속도차는 별로 없었다.
1. remapResults=true로 하고 두개의 테이블에 번갈아가면서 접근한것
2. 각각의 테이블로 가는 sql을 따로 두개 작성한후에 remapResults=false로 해놓고 번갈아가면서 접근한것
[출처] iBatis에서 remapResults=true|작성자 줄리
project.build.sourceencoding (0) | 2013.09.16 |
---|---|
ibatis <dynamic>,<prepend> (0) | 2013.09.13 |
Ibatis 동적쿼리 (0) | 2013.09.12 |
HashMap<k,v> (0) | 2013.09.12 |
리눅스 명령어 (0) | 2013.09.11 |