procedure insert 시 리턴값 처리
- 작성자 :
- 이*원
- 작성일 :
- 2014-02-20 16:57:24
- 조회수 :
- 1,626
- 구분 :
- 실행환경
- 진행상태 :
- 완료
Q
프로시저 호출해서 입력 후 리턴 값을 받으려고 합니다.
프로시저에선 int result, string result_str 두개의 값을 리턴하는데 update 로 처리시엔 처리된 횟수만 리턴되고
insert 나 queryForObject 로 처리시 nulll 이 리턴 됩니다.
Object obj = getSqlMapClientTemplate().queryForObject("ShDAO.insertShScholshipFamilyInfo", vo);
혹은
HashMap map = new HashMap();
getSqlMapClientTemplate().queryForObject("ShDAO.insertShScholshipFamilyInfo", vo);
java.util.ArrayList<ShVO> results = (java.util.ArrayList<ShVO>)map.get("RESULT");
vo.setResult((Integer)results);
이렇게 처리해도 NULL 값이 넘어옵니다.
저 두 값을 모두 받아와야 하는데 어떤 식으로 처리해야 할까요
프로시저에선 int result, string result_str 두개의 값을 리턴하는데 update 로 처리시엔 처리된 횟수만 리턴되고
insert 나 queryForObject 로 처리시 nulll 이 리턴 됩니다.
Object obj = getSqlMapClientTemplate().queryForObject("ShDAO.insertShScholshipFamilyInfo", vo);
혹은
HashMap map = new HashMap();
getSqlMapClientTemplate().queryForObject("ShDAO.insertShScholshipFamilyInfo", vo);
java.util.ArrayList<ShVO> results = (java.util.ArrayList<ShVO>)map.get("RESULT");
vo.setResult((Integer)results);
이렇게 처리해도 NULL 값이 넘어옵니다.
저 두 값을 모두 받아와야 하는데 어떤 식으로 처리해야 할까요
A
안녕하세요. 표준프레임워크센터입니다.
procedure 호출 시 Output 파라미터 처리는 ParameterMap을 통해 처리합니다.
다음의 예를 참고해보시기 바랍니다.
* SqlMap
<parameterMap id="outProcedureMap" class="java.util.Map">
<parameter property="result" javaType="java.lang.Integer" jdbcType="NUMBER" mode="OUT" />
<parameter property="result_str" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT" />
</parameterMap>
<procedure id="insertShScholshipFamilyInfo" parameterMap="outProcedureMap">
{ CALL INSERT_SH_SCHOLSHIP_FAMILY_INFO(?,?) }
</procedure>
* Dao 에서 호출
selectByPk("ShDAO.insertShScholshipFamilyInfo", map);
procedure 를 실행하고 리턴받은 Output 값은 map에서 꺼내어 사용하시면 됩니다.
ex) map.get("result");
감사합니다.
procedure 호출 시 Output 파라미터 처리는 ParameterMap을 통해 처리합니다.
다음의 예를 참고해보시기 바랍니다.
* SqlMap
<parameterMap id="outProcedureMap" class="java.util.Map">
<parameter property="result" javaType="java.lang.Integer" jdbcType="NUMBER" mode="OUT" />
<parameter property="result_str" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT" />
</parameterMap>
<procedure id="insertShScholshipFamilyInfo" parameterMap="outProcedureMap">
{ CALL INSERT_SH_SCHOLSHIP_FAMILY_INFO(?,?) }
</procedure>
* Dao 에서 호출
selectByPk("ShDAO.insertShScholshipFamilyInfo", map);
procedure 를 실행하고 리턴받은 Output 값은 map에서 꺼내어 사용하시면 됩니다.
ex) map.get("result");
감사합니다.