게시판만들기에 plsql을 사용하기
PL/SQL로 달라진 부분만 정리
해시맵으로 받아오는 루틴의 특성상 키값이 모두 "대문자"이다
그래서 jsp에서 사용할 때에도 모두 “대문자”를 사용해야 한다.
프로시져 형식 :
프로시저 이름(IN변수, OUT변수 ....)
IS
BEGIN
END;
예를들어 프로시져를 호출할 때 in변수는 id를 보내서 검색하게하고, out변수는 비어있는 memberVO변수를 보내서 프로시져가 나에게 보내는 MemberVO자료를 담게 한다.
프로시져는 MemberDao.xml에서 호출하고 그 이전 클래스(Controller, Service, Dao 등)에서는 필요한 변수들을 준비해서 전달해주는 역할을 한다.
package com.ezen.gboard.service;
/*생략*/
@Service
public class MemberService {
@Autowired
IMemberDao mdao;
public void getMember(HashMap<String, Object > paraMap) {
mdao.getMember(paraMap);
}
}
package com.ezen.gboard.dao;
import java.util.HashMap;
import org.apache.ibatis.annotations.Mapper;
import com.ezen.gboard.dto.MemberVO;
@Mapper
public interface IMemberDao {
void getMember(HashMap<String, Object> paramMap);
}
오라클 DB를 사용 중이므로 sql-developer에서 프로시져를 컴파일 하고 사용한다.
plsql을 사용하여 작업을하면 코드개발자와 DB관리자를 분리하여 작업을 하기 쉬워져서 작업속도가 빨라지거나 협력하기가 편리해진다.
package com.ezen.gboard.dao;
/* 생략 */
@Mapper
public interface IBoardDao {
void getAllCount(HashMap<String, Object> paramMap);
void selectBoardList(HashMap<String, Object> paramMap);
void plusOneReadCount(HashMap<String, Object> paramMap);
void getBoard(HashMap<String, Object> paramMap);
//List<ReplyVO> selectReply(int num);
//int getReplyCount(int num);
void insertBoard(BoardVO boardvo); // 수정 없음
}