개발/Framework || Lib

Oracle cursor 접근 방법

백아절현 2009. 10. 7. 16:04

처 : 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에서 사용하는 것과 동일한 개수를 가짐