초록꼬마의 devlog
article thumbnail

2021.11.23(화)

🌿 JDBC 작업 흐름/처리 순서

(Statement 객체 사용 시)

0. 필요한 변수들 먼저 세팅

1. JDBC Driver 등록: 해당 DBMS(및 버전)가 제공하는 클래스 등록

2. Connection 생성: 접속하고자 하는 DB 정보를 입력해서 DB에 접속하면서 생성

3. Statement 생성: Connection 객체를 이용해서 생성

4. SQL문 전달하면서 실행: Statement 객체 이용해서 SQL문 실행 → SELECT문일 경우, executeQuery() 메소드 이용 vs DML문일 경우, executeUpdate() 메소드 이용

5. 결과 받기: SELECT문일 경우, 조회된 데이터가 담겨있는 ResultSet 객체로 받음(→ 단계6a) vs DML문일 경우, 처리된 행 수(int)로 받음(→ 단계6b)

6a. ResultSet에 담겨있는 데이터들을 하나씩 뽑아서 VO 객체에 담음
6b. 트랜잭션 처리: 성공이면 COMMIT, 실패면 ROLLBACK

7. 다 쓴 JDBC용 객체들은 생성된 역순으로 반드시 자원 반납(close)

8. Controller로 결과 반환: SELECT문일 경우 6a에서 만들어진 결과 vs DML문일 경우 int(처리된 행 수)

출처: 강사님

💻 실습

  1. '회원 관리 프로그램' 틀 만들기
  2. 회원 추가, 회원 전체 조회, 회원 ID로 검색 메뉴 구현

📗 homework:

  1. '회원 관리 프로그램' 회원 이름 키워드로 검색,
  2. 회원 정보 변경,
  3. 회원 탈퇴 메뉴 구현

✔️ 숙제 회고
  - 고민했던 점: 회원 정보 수정 기능 구현 시, 어떤 컬럼들이 수정 (불)가능한가, 몇 개의 컬럼들을 수정하게끔 할 것인가 등을 생각해서 정했다 → 다수의 컬럼을 수정하기로 했을 때 sql문을 Statement을 통해 어떻게 반복해서 전달할지 생각이 필요했다.
 - 아쉬운 점: 내가 현재 쓴 코드 상으로는 회원 정보 수정 시 성별을 M, F로만 정확히 써야 할 수 밖에 없다. m, f 등 소문자로 쓰면 (프로그램은 계속 동작하지만) 자료 수정 반영은 안 된다. 
 - 개인적으로 구현해보고 싶어서 로그인 비슷한 것을 만들어보려고 했고, 의도한대로 기능은 하지만, '회원 관리 프로그램' 취지/의도에는 적합하지 않은 것 같다.