[JAVA] iBatis에서 procedure 처리 방법
2018. 11. 20 기준
MSSQL기준으로 작성합니다.
프로시저 PROC_MEMBER 있다고 가정하고 작성해볼께요~
//JAVA (저는 ServiceImpl에 작성했어요)
1 2 3 4 5 6 7 8 9 10 11 12 13 | @Override public void joinMemberShip(User user) { Map<String, Object> map = new HashMap<String, Object>(); map.put("userId", "test"); map.put("memberName", "홍길동"); map.put("passWord", "1234"); this.dao.callMember(map); int rtnCode = (Integer)map.get("rtnCode"); if(rtnCode < 1 ) { System.out.println("가입실패" + rtnCode ) } } | cs |
리턴 코드와 함께 실패여부를 확인할수 있게 작성해봤어요
실패했을때 throw new Exception 처리 해주면 더 좋겠죠??
//DAO
1 2 3 4 | @Override public void callMember(Map<String, Object> map) { super.getSqlMapClientTemplate().queryForObject("UserSQL.callProcedureMember", map); } | cs |
//SQL
1 2 3 4 5 6 7 8 9 10 | <parameterMap id="memberMap" class="java.util.Map"> <parameter property="userId" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" /> <parameter property="memberName" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" /> <parameter property="passWord" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" /> <parameter property="rtnCode" javaType="java.lang.Integer" jdbcType="INTEGER" mode="OUT" /> </parameterMap> <procedure id="callProcedureMember" parameterMap="memberMap"> {call PROC_MEMBER(?, ?, ?, ?)} </procedure> | cs |
procedure 의 parameterMap 과 parameterMap id 명을 같게 맞추고 프로시져호출을 할수있어요.
반환되는 rtnCode를 리턴받아 확인할수 있답니다.
mode 속성값으로는 IN, OUT, INOUT 있습니다.
'개발자가 좋은건가?? > Java, Jsp' 카테고리의 다른 글
[JAVA] thread와 process의 차이 (0) | 2018.11.29 |
---|---|
[JAVA] Spring @Scheduled 표현방법 (0) | 2018.11.23 |
[Java] 이전페이지 URL 확인 (0) | 2018.08.08 |
SPRING SP EL 사용하기 (0) | 2018.02.20 |
[Jsp] Jsp 기본문법 (0) | 2018.01.19 |