본문 바로가기

Java

[ibatis] 자바 프로시저 호출

*자바


프로시저 호출후 HashMap으로 다시 리턴받는 소스


-service.java


//프로시저 호출
HashMap result = btob_sendDao.executeProc_cust_info(receivermobile, member_id);    

vo.setCust_no(result.get("ot_cust_no").toString()); //프로시저 호출 후 받은 값 set
vo.setCr_id(result.get("ot_cr_id").toString()); //프로시저 호출 후 받은 값 set



-dao.java


public HashMap executeProc_cust_info(String phone_no, String login_id) throws SQLException {
    HashMap param = new HashMap();
    param.put("in_phone_no", phone_no);
    param.put("in_login_id", login_id);

    sqlMapClientTemplate.queryForObject("sqlmap.executeProc_create_cust_info", param);
}


*sqlmap


<parameterMap id="proc_create_cust_infoParam" class="HashMap">
<parameter property="in_phone_no" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
<parameter property="in_login_id" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
<parameter property="ot_cust_no" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT" />
<parameter property="ot_cr_id" javaType="java.lang.String" jdbcType="VARCHAR" mode="OUT" />
</parameterMap>

<procedure id="executeProc_create_cust_info" parameterMap="proc_create_cust_infoParam">
<![CDATA[
{ call proc_create_cust_info(?, ?, ?, ?) }
]]>
</procedure>


파라미터 in, out 인지 주의만 해서 코딩하면 된다.


파라미터 타입이 number 일때

<parameter property="in_count_no" javaType="java.lang.Integer" jdbcType="NUMBER" mode="IN" />
<parameter property="in_count_no" javaType="java.lang.Integer" jdbcType="DECIMAL" mode="OUT" />
반응형