스토어드 프로시저를 사용하는 이유)
1. Java 단에서 복잡한 로직과 쿼리문을 매번 작성하지 않고 데이터베이스 내에 하나의 스토어드 프로시저를 만들어 놓으면 쉽게 유지보수를 할 수 있다.
2. 자주 사용되는 복잡한 쿼리문을 매번 실행하는 대신 데이터베이스 서버에 저장함수로 만들어 놓고 필요할 때마다 프로시저 이름,매개변수 등의 필요한 몇개의 텍스트만 전송함으로 네트워크의 부하를 줄일 수 있다.
스토어드 프로시저가 사용되는 때)
1. 회원이 동영상 게시물 업로드시 경험치를 얻은 후 등급 상승 여부 확인 후 조건에 맞을 시 업데이트
2. 회원이 로그인 후 경험치를 얻은 후 등급 상승 여부 확인 조건에 맞을시 업데이트
--> 등급 상승 여부를 확인하고 업데이트 하는 과정은 복잡한 조건문과 쿼리문이 자주 실행되기 때문에 스토어드 프로시저를 만들어서 사용하면 편리하다.
<해당 유저의 등급 상승 여부 확인후 업데이트하는 스토어드 프로시저>
CREATE DEFINER=`root`@`%` PROCEDURE `rankUpdateCk_procedure`(
IN this_user_id VARCHAR(20) -- 파라미터로 들어온 값의 이름과 타입을 지정
)
BEGIN
DECLARE exp INT; -- select 해서 받을 변수(exp)선언
SELECT user_exp into exp FROM user WHERE user_id = this_user_id;
IF(exp >= 1000 AND exp < 3000) THEN
UPDATE user SET user_rank = 'Silver',user_rank_code = 2 where user_id = this_user_id;
ELSEIF(exp >= 3000 AND exp < 10000) THEN
UPDATE user SET user_rank = 'Gold',user_rank_code = 3 where user_id = this_user_id;
ELSEIF(exp >= 10000) THEN
UPDATE user SET user_rank = 'Platinum',user_rank_code = 4 where user_id = this_user_id;
END IF;
END
-- 프로시저 호출(파라미터에는 해당 유저의ID가 들어감)
call rankUpdateCk_procedure('admin')
'프로젝트' 카테고리의 다른 글
백화점과 제품 공급업체가 계약을 맺는 방식 (0) | 2021.07.02 |
---|---|
트랜잭션 처리(동영상 게시글 등록,로그인시) (0) | 2021.04.26 |
프로젝트 폴더 이외의 외부 폴더 접근 (0) | 2021.03.31 |
프로젝트 기획안 (0) | 2021.03.20 |
쇼핑몰 ERD(최종) (2) | 2021.01.04 |