2008년 9월 26일 금요일

JAVA: USE ORALCE CLOB

아래 4월달에 쓴 글도 있지만 삽질의 흔적으로 삼고자 글을 새로 쓴다.


/**
* oracle의 CLOB을 이용하여 java의 Clob을 생성한다.
*
* @param clobValue
* @param conn
* @return
* @throws Exception
*/
public static Clob getClob(String clobValue, Connection conn) throws Exception{
Clob newClob= null;
if(clobValue!=null) {
try{
if (conn.getClass() == UserConnectionAdapter.class) { //env: resin pool connection
newClob = oracle.sql.CLOB.createTemporary(
((UserConnectionAdapter)conn).getConnection() ,
true, oracle.sql.CLOB.DURATION_SESSION);
} else if (conn.getClass() == OracleConnection.class) { //env: oracle connection
newClob = oracle.sql.CLOB.createTemporary(
conn,
true, oracle.sql.CLOB.DURATION_SESSION);

} else if (conn.getClass() == Connection4Oracle.class) { //env: jennifer connection
conn = ((Connection4Oracle)conn).getNativeConnection();
newClob = oracle.sql.CLOB.createTemporary(
((UserConnectionAdapter)conn).getConnection(),
true, oracle.sql.CLOB.DURATION_SESSION);
} else { //env: else connection
newClob = oracle.sql.CLOB.createTemporary(
conn,
true, oracle.sql.CLOB.DURATION_SESSION);
}

if(newClob!=null) {
((oracle.sql.CLOB)newClob).putString(1, clobValue);
}
} catch (Exception e){
e.printStackTrace();
}
}
return newClob;
}


위의 메소드를 이용해서

psmt.setClob(psmtIndex++, DaoHelper.getClob( info.getEtcInfo(), conn ));

dao 단의 코딩이 좀더 깔끔하게 되었다.
좀더 정리 할 필요가 있지만 그건 조금 나중이 될 듯 하다.

댓글 없음: