[ORACLE] iBatis 2.1.x, CLOB, LONG 처리
iBatis 에서 CLOB, LONG 처리 안된다.
Handler 등록해서 된다고 하는데 안된다고 하는 사람도 있다.
시간도 없고 해서 아예 iBatis Handler 테스트 해보다가 제외 시키고
ibatis 에서 connection 을 얻어와 PreaparedStatement 로 구현했다.
근데 문제...
데이터 타입에 대한 제약사항을 검토를 하지 않았던 것이다.
Long, CLOB ... 둘 다 Group by 안된다.
그러니까 group by 해야 한다면 테이블 따로 떼서 써야 한다.
그런데 LONG 의 문제는 Where 조건 자체가 안되므로 Like 검색을 할 수가 없다는 것.
-ㅅ-;;; 난 검색되어야 해!!!! ㅠㅠㅠ
그래서 LONG 으로 테스트 했던거 다시 CLOB 으로 테스트하는 삽질이 발생.
아 놔..
암튼, iBatis 로 4000Byte 가 넘는 데이터때문에 CLOB, LONG 으로 처리 할 수 밖에 없다면,
1. 적정한 데이터타입이 무엇인지 고민해봐야 나같은 삽질을 방지할 수 있다.
**제약사항
PL/SQL LOG Types(locator) vs LONG< LOGN RAW data type 으로 네이버에서 검색하여
Good Start Education 카페의 게시글을 참고해본다.
**CLOB 제약사항
http://blog.naver.com/muscle1?Redirect=Log&logNo=10017426564
2. Handler 한번 찾아서 작성해보길.( myBatis 는 되는거 같음... )
- Handler 하나 만든다고 해서 되는게 아니라 parameterMap, resultMap 도 신경써서 테스트를 해봐야 하므로 공수가 좀 걸린다.( 나도 조금 해보다가 시간이 촉박하여 다른 방법으로 갈아탐. )
3. jdbc library 를 상위 드라이버로 변경( 강력추천 )
실서버의 oracle 버전이 10g 인 관계로 드라이버를 10.2.0.5 버전으로 업데이트 했다.
그러니 핸들러 없이 iBatis 에서 동작한다. 야홋!!!!
- http://cafe.naver.com/sollog.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=19&
4. PreparedStatement 를 이용하여 구현을 생각한다.
**INSERT/UPDATE
- http://blog.naver.com/endstar7?Redirect=Log&logNo=100048393263
- http://blog.bagesoft.com/728 ( Long 형... 아주 잘 들어간다. )