DAY_083[국비] 자바 웹프로그래밍 과정

Bona의 블로그 입니다.·2023년 2월 2일
0

국비과정

목록 보기
83/99

 🌞 Day 083 

  • 게시판 이어서 => 게시글 수정, 삭제
  • PLSQL사용해서 게시판 만들기 1



 🌈 게시글 수정, 삭제 


 🌙 BoardController 


 🌙 BoardDao.xml 




 🌈 PLSQL 사용하기 

  • 게시판만들기에 plsql을 사용하기

  • PL/SQL로 달라진 부분만 정리

  • 해시맵으로 받아오는 루틴의 특성상 키값이 모두 "대문자"이다
    그래서 jsp에서 사용할 때에도 모두 “대문자”를 사용해야 한다.

  • 프로시져 형식 :

		프로시저 이름(IN변수, OUT변수 ....)
		IS
		BEGIN
		END;
  • 예를들어 프로시져를 호출할 때 in변수는 id를 보내서 검색하게하고, out변수는 비어있는 memberVO변수를 보내서 프로시져가 나에게 보내는 MemberVO자료를 담게 한다.

  • 프로시져는 MemberDao.xml에서 호출하고 그 이전 클래스(Controller, Service, Dao 등)에서는 필요한 변수들을 준비해서 전달해주는 역할을 한다.




 🌈 Member 


 🌙 MemberController 

  • login메서드를 순서대로 정리하면 이렇다.
    1. 해시맵에 IN 변수와 OUT변수에 전달될 데이터 (userid, ref_cursor)를 담는다.
    2. paramMap을 호출할 서비스메서드에 전달인수로 전달
    3. 서비스에서 Dao로 재호출, Dao에서 xml로 재호출, xml에서 프로시져 호출
    4. 프로시져에서 전달된 userid로 검색한 회원정보 레코드를 HashMap형태로 변환하고 리스트형식으로 ref_cursor에 담아준다.
    5. 다시 전달받은 paramMap에서 ref_cur를 꺼낸다.
      이 때 회원레코드가 해시맵형태로 저장되어, 해시맵여러개가 리스트에 담긴 형태
    6. 그 중 첫번째를 꺼내서 HashMap<Sring, Object> mvo에 담는다.
    7. 이 mvo를 MemberVO처럼 사용한다.

 🌙 MemberService 

package com.ezen.gboard.service;

/*생략*/

@Service
public class MemberService {
	
	@Autowired
	IMemberDao mdao;

	public void getMember(HashMap<String, Object > paraMap) {
		mdao.getMember(paraMap);
	}
}

 🌙 IMemberDao 

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);
}

 🌙 MemberDao.xml 

  • MemberDao.xml에서 사용할 java.util.HashMap형의 변수를 하나의 태그에서 동시에 두 개를 사용하려면 id를 달리 해서 2개를 선언해야 한다. (BoardDao.xml에서 사용)




 🌈 PROCEDURE 

  • 오라클 DB를 사용 중이므로 sql-developer에서 프로시져를 컴파일 하고 사용한다.

  • plsql을 사용하여 작업을하면 코드개발자와 DB관리자를 분리하여 작업을 하기 쉬워져서 작업속도가 빨라지거나 협력하기가 편리해진다.


 🌙 PL/SQL - 프로시져 생성 




 🌈 Board 

  • 메인페이지, 게시글 보기, 게시글 쓰기, 댓글 쓰기

 🌙 BoardController 


 🌙 BoardService 


 🌙 IBoardDao 

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); // 수정 없음
}

 🌙 BoardDao.xml 





profile
제가 공부하고 공유하고 싶은 글을 올리고 있습니다.

0개의 댓글