본문 바로가기
Front-end (국비)/메모

23.06.30 메모 2 (JSP_MVC 패턴으로)

by Hwanii_ 2023. 7. 1.
728x90

M-V-C 패턴으로 백엔드와 프론트를 완전 분리 시키기.
 
이번에는, 
 
데이터 저장을, 자바의 배열리스트에 저장 하지 않고, 
MySQL (DBMS) 을 사용해서, 데이터를 DB에 저장 해보려 한다.
 
JDBC 인터페이스 구현 하기.
 
홈페이지 연습 하기.
 
>>
Model (자바 / 백엔드)
 
1. 
JDBC 인터페이스
 
2.
BoardDAO
 
3.
MemberDAO
 
 
 
[ MemberDAO ]
 

 
해당 클래스 내부에서 conn, pstmt, rs를 여러번 재 사용 해서,
반복을 피하기 위해 상단에 참조변수를 선언한 모습 이다.
 

 
DB를 사용하기 때문에, 필요한 sql 구문 이다.
 
preparedStatement (향상된 Statement) 를 사용하여,
문법상 자바의 개입이 사라져서, 
클래스 상단에 배치한 모습이다.
 
모든 각각의 비즈니스 메서드 내부에서 사용되는 변수들 이기에,
static 키워드를 붙혀서 클래스 변수로 선언.
 
또한, sql 구문은 변하면 안되므로 final 키워드를 붙혀, 상수화 시켰다.
 
또한, 해당 클래스 내부에서 사용되는 sql 구문이기에,
접근 제어자 private를 붙혀 외부로부터 접근이 되지 못하도록 했다.
 

 
비즈니스 메서드 중에서, selectOne() 메서드 이다.
 
sql 구문 확인 하기.
 

 
MEMBER 테이블에서, MID 하고 MPW 를 확인해서 SELECT 하는 구문 이다.
 
로그인을 할 때 필요한 구문 이라고 볼 수 있겠다.
 
selectOne() 메서드 이기 때문에, output 으로, mVO 객체를 반환 한다.
 

 
스코프 이슈로 try - catch 문 외부에 선언한 모습 이다.
 

 
DB의 MEMBER 테이블에 있는 데이터와
사용자가 입력한 mid, mpw의 값을 확인 하기.
 
pstmt 주체가 executeQuery()를 하고, 결과값으로,
 

 
결과값으로 ResultSet 타입의 값을 반환한다.
 
아이디하고 비밀번호 둘다 유효 하다면, rs에 유효한 값이 저장될테니,
 

 
rs를 주체로 해서, next() 메서드를 통해,
 
MemberVO 타입의 참조변수 data에
mid, mpw, name 멤버변수의 값을 각각 set 한다.
 
DB의 테이블에서, 
 
MID 이라는 칼럼명을 가진 아이의 값을 get 해서,
mid 이라는 멤버변수의 값에 set 할거야.
 
MPW 이라는 칼럼명을 가진 아이의 값을 get 해서,
mpw 이라는 멤버변수의 값에 set 할거야.
 
NAME 이라는 칼럼명을 가진 아이의 값을 get 해서,
name 이라는 멤버변수의 값에 set 할거야.
 
이다.
 
근데, 만약에 rs가 유효하지 않은 데이터 이었다면, 
== 일치하는 아이디 또는 비밀번호가 없었다면,
 
rs.next() 메서드가 false 를 반환하여, if 문 자체가 false가 된다.
 
그러면, 처음에
 

 
data의 값이 null 로 주었기 때문에,
return 값으로 null을 반환하게 된다.
 
 
 
다음은, insert() 메서드 이다.
 

 
회원가입 기능에 해당하는 insert() 메서드 이다.
 
CRUD 중에, C에 해당하며,
C, U, D 메서드는 return 값으로 true 또는 false를 반환 한다.
 
sql 문을 확인 해 보자.
 

 
 
 
다음은, update() 메서드 이다.
 

 
비밀번호, 닉네임 변경 기능에 해당하는 update() 메서드 이다.
 
CRUD 중에, U에 해당하며,
C, U, D 메서드는 return 값으로 true 또는 false를 반환 한다.
 
sql 문을 확인 해보자.
 

 
현재는,
비밀번호와 닉네임을 따로따로 변경하는게 아니라,
변경할 때 둘다 한번에 변경하는 식으로 로직이 구현 되어 있다.
 
분리 하고 싶으면,
 
if - else if 문 등을 사용 해서 로직을 구현 하고,
 
자바에서 했던 것 처럼, search Condition이 있어야 할듯 하다.
 
 
 
마지막으로,  delete() 메서드 이다.
 

 
회원탈퇴 기능에 해당하는 delete() 메서드 이다.
 
CRUD 중에, D에 해당하며,
C, U, D 메서드는 return 값으로 true 또는 false를 반환 한다.
 
sql 문을 확인 해보자.
 

 
Controller 로 부터, mid 값을 객체를 통해 전달 받아서,
? 에 mVO.getMid() 를 해서, pstmt 주체가 set을 한다.
 
그리고, sql 구문을 통해 DB와 무언가 행동을 실행하고, 끝나면,
 
pstmt.executeUpdate() 메서드는 return 값으로 숫자를 반환 한다.
 
0보다 작거나 같으면 실패의 경우 >> return false
 
1 이상이면, 성공의 경우 >> return true

반응형

'Front-end (국비) > 메모' 카테고리의 다른 글

프론트 엔드 특징 메모  (0) 2023.07.04
23.06.30 메모 3 (JSP_MVC 패턴으로)  (0) 2023.07.01
23.06.30 메모 (JSP_MVC 패턴으로)  (0) 2023.06.30
메모  (0) 2023.06.28
23.06.28 메모  (0) 2023.06.28