RowHandler 에서 update처리 방법 문의 합니다.
- 작성자 :
- 김*석
- 작성일 :
- 2014-06-30 17:30:57
- 조회수 :
- 630
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
대용량 처리 건이 있어 RowHandler를 사용했는데
update처리에서 오류 발생했습니다. 잘 안되는 군요.. 부탁드립니다.
오류 내용
java.lang.IllegalArgumentException: No SqlMapClient specified
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:157)
at org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:378)
at WIZ.EGOV.TESTA.dao.ResultRowHandler.handleRow(ResultRowHandler.java:41)
at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:77)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:385)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:300)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:189)
// DAO 소스
public VOBJ selectEmployee_SEL2(DOBJ dobj) throws Exception
{
HashMap param = null;
param = new HashMap();
ResultRowHandler rrow = new ResultRowHandler(dobj);
super.getSqlMapClient().queryWithRowHandler("20130528101923.selectEmployee_SEL2", param, rrow); --> 정상호츌
...
return dvobj;
}
// RowHandler 부분
public class ResultRowHandler extends EgovAbstractDAO implements RowHandler
{
public ResultRowHandler(DOBJ dobj)
{
}
public void handleRow(Object rowObject)
{
try
{
int updcnt=0;
HashMap hmap = (HashMap)rowObject;
hmap.put("EMAIL", "xxx@xxx.xxx");
updcnt += update("20130528101923.large_select_egov_UPD3",hmap); //--> update 부분에서 오류 발생 :
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
update처리에서 오류 발생했습니다. 잘 안되는 군요.. 부탁드립니다.
오류 내용
java.lang.IllegalArgumentException: No SqlMapClient specified
at org.springframework.util.Assert.notNull(Assert.java:112)
at org.springframework.orm.ibatis.SqlMapClientTemplate.execute(SqlMapClientTemplate.java:157)
at org.springframework.orm.ibatis.SqlMapClientTemplate.update(SqlMapClientTemplate.java:378)
at WIZ.EGOV.TESTA.dao.ResultRowHandler.handleRow(ResultRowHandler.java:41)
at com.ibatis.sqlmap.engine.mapping.statement.RowHandlerCallback.handleResultObject(RowHandlerCallback.java:77)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleResults(SqlExecutor.java:385)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.handleMultipleResults(SqlExecutor.java:300)
at com.ibatis.sqlmap.engine.execution.SqlExecutor.executeQuery(SqlExecutor.java:189)
// DAO 소스
public VOBJ selectEmployee_SEL2(DOBJ dobj) throws Exception
{
HashMap param = null;
param = new HashMap();
ResultRowHandler rrow = new ResultRowHandler(dobj);
super.getSqlMapClient().queryWithRowHandler("20130528101923.selectEmployee_SEL2", param, rrow); --> 정상호츌
...
return dvobj;
}
// RowHandler 부분
public class ResultRowHandler extends EgovAbstractDAO implements RowHandler
{
public ResultRowHandler(DOBJ dobj)
{
}
public void handleRow(Object rowObject)
{
try
{
int updcnt=0;
HashMap hmap = (HashMap)rowObject;
hmap.put("EMAIL", "xxx@xxx.xxx");
updcnt += update("20130528101923.large_select_egov_UPD3",hmap); //--> update 부분에서 오류 발생 :
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
A
안녕하세요. 김기석님.
"extends EgovAbstractDAO" 부분은 RowHandler가 아닌 DAO에 지정하셔야 합니다.
그리고 iBatis 호출을 위한 DAO를 정상 호출하기 위해서는 spring 설정 상에 다음과 같은 sqlMapClient 정의가 필요합니다.
ex:
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:/egovframework/sqlmap/adt/sql-map-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
그럼, 즐거운 하루되십시오.
감사합니다.
"extends EgovAbstractDAO" 부분은 RowHandler가 아닌 DAO에 지정하셔야 합니다.
그리고 iBatis 호출을 위한 DAO를 정상 호출하기 위해서는 spring 설정 상에 다음과 같은 sqlMapClient 정의가 필요합니다.
ex:
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:/egovframework/sqlmap/adt/sql-map-config.xml"/>
<property name="dataSource" ref="dataSource"/>
</bean>
그럼, 즐거운 하루되십시오.
감사합니다.