//controller 로 가기전 js
var paramString = {
'title':$('#title').val(),
'content':$('#content').val()
};
var url = '/request/deleteContent.do';
ajaxRequest(url,{ "paramString" : JSON.stringify(paramString)}, function (result) {
if (result['isSuccess']) location.replace('/request/contentList.do');
alert(result['message']);
});
//해당 매퍼
@Delete("CALL CONTENT_DELETE("+
"#{title, mode=IN, jdbcType=INTEGER, javaType=String}"+
",#{content, mode=IN, jdbcType=INTEGER, javaType=String}"+
")")
@Options(statementType = StatementType.CALLABLE)
void deleteServiceReqFile(Map<String, Object> paramMap);
//해당 프로시저
create PROCEDURE "CONTENT_DELETE"
(
/*IN*/
TITLE DB명.TITLE_NO%TYPE,
CONTENT DB명.CONTENT_NO%TYPE
)
IS
BEGIN
DELETE FROM DB명
WHERE TITLE_NO=TITLE
AND CONTENT_NO=CONTENT;
EXCEPTION
WHEN NO_DATA_FOUND THEN
NULL;
WHEN OTHERS THEN
RAISE;
END CONTENT_DELETE;
/
이런식으로 컨트롤러 부를때 보내는 파라메터 순서 & 매퍼에 기입하는 변수 순서 & 프로시저에 기입한 변수 순서 세가지가 다 맞아야한다.
매퍼는 틀려도되나? 정확히 어디까지가 맞아야하는지모르겠는데 확실한건 프로시저는 변수 순서를 바꿔쓰면 인식을 못한다는점이다 ㅠㅠ
또한 무결성제약조건 에러
이런식의 창이 뜨는데 어떤자식이 있는지 모를경우 빨간줄 부분을 보면 그 자식의 key 를 상냥하게 설명해준다.