아래 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 단의 코딩이 좀더 깔끔하게 되었다.
좀더 정리 할 필요가 있지만 그건 조금 나중이 될 듯 하다.