Oracle cursor 접근 방법
처 : http://jrusi.tistory.com/category/개발자의길/Ibatis%20FrameWorks
< ?xml ... ?>
< !DOCTYPE ... dtd.">
< sqlMap>
... -- 단일 CURSOR --
< parameterMap id="paramForSingleCursor" class="map">
< parameter property="paramForInMode" jdbcType="int" javaType="java.lang.Integer" mode="IN" />
< parameter property="paramForOutMode" jdbcType="ORACLECURSOR" mode="OUT" />
< /parameterMap>
-- 다중 CURSOR --
< parameterMap id="paramForMultipleCursor" class="map">
< parameter property="paramForInMode" jdbcType="int" javaType="java.lang.Integer" mode="IN" />
< parameter property="paramForOutMode1" jdbcType="ORACLECURSOR" mode="OUT" resultMap="..." />
< parameter property="paramForOutMode2" jdbcType="ORACLECURSOR" mode="OUT" resultMap="..." />
< /parameterMap>
< procedure id="procForSingleCursor"
parameterMap="paramForSingleCursor" ...>
{ call ...SingleResultSet(?, ?) }
< /procedure>
< procedure id="procForMultipleCursor" parameterMap="paramForMultipleCursor" ...>
{ call ...MultipleResultSet(?, ?, ?) }
< /procedure>
< /sqlMap>
-- 자바 호출 --
-- 공통 --
Map map = new HashMap();
map.put("paramForInMode", new Integer(넘겨줄 id));
-- 단일 CURSOR --
List list = sqlMapClient.queryForList("procForSingleCursor", map);
-- 다중 CURSOR --
sqlMapClient.queryForObject("procForMultipleCursor", map);
map.get("paramForOutMode1");
map.get("paramForOutMode2");
여기에서 resultMap 요소는 생략되었고,
파라미터 맵에서 파라미터 개수는 Stored Procedure에서 사용하는 것과 동일한 개수를 가짐