오늘 oracle 사이트에서 Oracle Database 10g Releage 2(10.2.0.3) JDBC Drivers 중 ojdbc14.jar(1,540,457 bytes)를 다운받았다. 기존에 쓰던게 ojdbc14-g.jar였는데 1,352KB였다.
[ 테스트 환경 ]
oracle ver. : 8.1.7.4
data source type : DBCP
ibatis ver. : 2.3.0
1. 아래와 같이 TempClob DO를 만든다.
public class TempClob |
2. sql을 아래와 같이 만든다. insert할때는 parameterMap을 사용하지 않고 class를 그대로 사용한다.(update도 마찬가지다)
<insert id="insert" parameterClass="TempClob">
<resultMap id="result-temp" class="TempClob"> |
3. 사용자 정의 typeHandler oracleClobTypeHandler 는 http://openframework.or.kr/JSPWiki/Wiki.jsp?page=IbatisOracleclobtypehandler 를 참조해서 만들면 된다.
참고) ojdbc14-g.jar 를 사용했을 때 아래와 같은 에러 메시지가 나왔습니다.Caused by: java.sql.SQLException: 데이터 크기가 해당 유형의 최대 크기보다 큽니다: 6400
덧) 테스트 결과 select도 resultMap을 사용하지 않고 resultClass에다 바로 담아도 된다.
public class OracleCLOBTypeHandler implements TypeHandlerCallback { |
====> SQLMap (essay 빈의 content 속성이 CLOB 타입으로 정하고...)
<resultMap id="xmlRslt" class="essay"> |
====> CLOB의 데이터를 문자열로 변환하는 메소드.
public static String getStringForCLOB(CLOB clob) { |