Procedure : 특정 작업을 수행하는 PL/SQL block
프로시저는, Service에서 특정 작업을 수행할 때 사용합니다.
실무에서 사용하는 예시로 보기
루트 : JSP -> controller -> service -> SQL
1) JSP
화면에서 필요로 하는 버튼이 있을 경우, ajax 통신의 url로 프로시저 실행 url을 삽입
var url : "/test/transactionData.do";
$.ajax({
url: "/test/transactionData.do"
data: data
...
}
2) Controller
JSP로부터 호출된 url로 들어가서 return 값으로 service.해당 프로시저 서비스 이름
@RequstMapping(value="/test/transactionData.do")
@ResponseBody
public ModelAndView testData(HttpServletRequest req){
DataMap map = getData(req);
map.put("nn",data);
return testService.transactionData(map);
}
3) Service
프로시저를 실행하는 DAO의 id를 호출하여 db에 접근
public ModelAndView transactionData(){
testDAO.select("testDAO.getTransactionDao",map);
}
4) SQL
여기서는 프로시저 호출과 연관된 내용이 나옵니다.
<parameterMap id="procMap" class="java.util.Map">
<parameter property="id1" javaType="java.lang.String" jdbcType="VARCHAR" mode="IN" />
<parameter property="id2" javaType="java.lang.String" jdbcType="VARCHAR" mode="INOUT" />
</parameterMap>
<resultMap id="" class="">
<result property="" column="" />
</resultMap>
<procedure id="testDAO.transactionDao" parameterMap ="" resultMap ="">
{ call procedure_name(?,?,?,?...)}
</procedure>
프로시저에 관하여: 프로시저는 필요한 작업을 수행하는 것으로, 필요할 때 쓰면 된다.
그러면서, 사용법이 환경에 따라 달라진다. 일단 크게 두 가지로 나뉠 수 있다.
1. 기본 서비스에서의 사용법
2. 인터셉터에서의 사용법
1은 위와 같은 방법으로 할 수 있는 것이고
2는 인터셉터라고 따로 정의된 파일에서 함수로(callProcedure) 사용이 가능한 것
프로시저 (0) | 2023.07.20 |
---|---|
Docker와 DB 연결 및 권한 부여하기 (0) | 2021.08.05 |