어벙이가 하루 고생하여 Insert시 CLOB 처리를 완결하다..ㅋㅋㅋ
두가지 방법이 있는데....두가지 모두 되는데요...bean 설정이 어려운분은 2번 권장.
1. applicationContext-xxx.xml 에서 bean 생성 방법
1.applicatonContext-jdbc.xml bean 선언예제 <bean id="nativeJdbcExtractor" class="org.springframework.jdbc.support.nativejdbc.SimpleNativeJdbcExtractor" lazy-init="true"/>
<bean id="oracleLobHandler" class="org.springframework.jdbc.support.lob.OracleLobHandler" lazy-init="true"> <property name="nativeJdbcExtractor"> <ref local="nativeJdbcExtractor"/> </property> </bean> 2.applicatonContext-law.xml bean 선언예제 <bean id="lawServiceTarget" class="kr.go.ccourt.xmlmng.law.service.LawServiceImpl"> <property name="transactionManager"> <ref bean="transactionManager" /> </property> <property name="lawDAO"> <ref local="lawDAO" /> </property> <property name="oracleLobHandler"> <ref bean="oracleLobHandler" /> </property> </bean> 3.LawServiceImpl setter injection 선언 예제 public void setOracleLobHandler(OracleLobHandler pm_oOracleLobHandler) { this.im_oOracleLobHandler = pm_oOracleLobHandler; } 4.LawServiceImpl addLaw 메소드 예제 public int addLaw(Law pm_oLaw) throws ExistedLawException { ..생략 im_oLawDAO.setOracleLobHandler(im_oOracleLobHandler); lm_iResult = im_oLawDAO.insert(pm_oLaw); ..생략 } 5.LawDAOImpl setOracleLobHandler 메소드 예제, LawDAO interface에서 당근 선언해야겠죠..ㅋㅋ public void setOracleLobHandler(OracleLobHandler pm_oOracleLobHandler) { this.im_oOracleLobHandler = pm_oOracleLobHandler; }
2. xxxxDAOImpl 에서 직접 생성
public class LawDAOImpl extends MyJdbcDaoSupport implements LawDAO {
private OracleLobHandler im_oOracleLobHandler = null;
public int insert(Law pm_oLaw) throws DataAccessException {
int lm_iResult = 0; String sql = getMessageSourceAccessor().getMessage("law.insert.add"); im_oOracleLobHandler = new OracleLobHandler(); im_oOracleLobHandler.setNativeJdbcExtractor(new SimpleNativeJdbcExtractor()); Object[] values = { pm_oLaw.getLawName(), pm_oLaw.getLawCourtDay(), pm_oLaw.getLawNum(), pm_oLaw.getLawJurisdition(), pm_oLaw.getLawType(), pm_oLaw.getLawInfo(), new SqlLobValue(pm_oLaw.getLawContent(), im_oOracleLobHandler), pm_oLaw.getSrcType(), pm_oLaw.getInfoType(), pm_oLaw.getSearchKeyword() };
int [] argTypes = new int [] { java.sql.Types.VARCHAR, java.sql.Types.VARCHAR, java.sql.Types.VARCHAR, java.sql.Types.VARCHAR, java.sql.Types.VARCHAR, java.sql.Types.VARCHAR, java.sql.Types.CLOB, java.sql.Types.VARCHAR, java.sql.Types.VARCHAR, java.sql.Types.VARCHAR}; lm_iResult = getJdbcTemplate().update(sql, values, argTypes); return lm_iResult; }
}
|