JDBC - SELECT
ResultSet 인터페이스
→ 자바에서 SELECT문을 사용하여 결과를 반환받을 때 사용합니다.
→ ResultSet 객체는 커서를 가지고 있고, 최초의 위치는 첫 행의 이전입니다.
→ next() 메소드는 다음 행이 존재하면 true를 반환하고 커서를 다음 행으로 이동시킵니다.
→ 다음 행이 존재하지 않으면 false를 반환합니다.
→ getXXX 메소드로 다른 클래스의 필드 값을 가져올 수 있습니다. (getString, getInt, getDate, ...)
→ getXXX(열_이름) : 커서가 있는 행의 열_이름에 해당하는 데이터를 가져옵니다.
→ getXXX(숫자) : 숫자는 컬럼 순서이고 1번부터 시작합니다.
예제1: SelectTest1
→ ResultSet 객체는 SELECT문 실행시 조회되는 테이블의 데이터를 참조합니다.
→ SELECT 문에서는 executeQuery 메소드를 사용합니다. (ResultSet 타입 반환)
→ rs.next()는 다음 행이 있으면 true, 없으면 false를 반환합니다.
→ getXXX 메소드로 커서 위치 바로 앞의 행의 데이터를 가져옵니다.
예제2: SelectTest2
→ while문으로 행의 데이터를 출력합니다.
→ String 클래스의 format 메소드로 서식을 부여합니다.
→ String.format("%숫자s", 문자열) : 숫자만큼의 칸에 부호가 -면 왼쪽부터, +면 오른쪽부터 문자를 채웁니다.
예제3: SelectTest3
→ Scanner 클래스로 변수에 입력값을 저장합니다.
→ setString 메소드로 입력값을 sql문의 ? 에 대입합니다.
→ rs.next()가 true이면 있는 ID, false이면 없는 ID입니다.
예제 : VO 클래스
→ VO: Value Object, 여러 개의 데이터를 저장하는 것이 목적입니다.
→ Custom# 테이블의 컬럼을 저장할 필드로 구성된 클래스입니다.
→ 구성요소 : 필드(컬럼), 기본 생성자, 커스텀 생성자, getter/setter, toString메소드(오버라이드)
예제 : VO Test
VO 클래스를 이용하여 List에 테이블을 저장하여 SELECT 문으로 조회합니다.
→ List에 Custom 객체를 생성하여 행을 저장합니다
→ 방법1) 커스텀 생성자를 이용하여 인자에 getXXX 메소드를 대입한 후 List에 add합니다.
→ 방법 2) Custom 객체를 생성하고 setter 메소드로 필드 값을 저장한 후 List에 add합니다.
예제 : ID 중복 확인
→ idCheck 메소드 : !rs.next가 true이면 result는 true 즉, ID가 존재하지 않으면 true 중복되면 false를 반환합니다.
→ while 문으로 ID가 존재하지 않으면(idCheck(id)=true) break문으로 반복문을 빠져나와 ID를 만들 수 있습니다.
→ ID가 이미 존재하면 다시 while 문을 반복합니다.
DISTINCT
→ 중복된 결과를 제거하고 1개만 출력합니다.
→ DISTINCT한 pcode를 출력합니다.
예제: UpdateTest
→ Scanner 클래스로 ID를 조회합니다.
→ idCheck 메소드로 존재하는 ID인지 확인합니다.
→ ID가 존재한다면 email을 setXXX 메소드로 입력받은 email로 변경합니다.
→ idCheck 메소드: ID가 존재하지 않으면 true, 존재하면 false입니다.
예제: DeleteTest
→ Scanner 클래스로 ID를 조회합니다.
→ idCheck 메소드로 존재하는 ID인지 확인합니다. (존재하면 !idCheck(custom_id)는 true)
→ ID가 존재한다면 id를 삭제합니다.
'수업 일지 > JDBC' 카테고리의 다른 글
32~37일차 - 미니 팀 프로젝트 (0) | 2022.02.25 |
---|---|
31일차 - 데이터 가져오기/내보내기/자바 GUI (0) | 2022.02.15 |
30일차 - ORDER BY/GROUP BY/자릿수 지정/HAVING/절 순서/ALL (0) | 2022.02.14 |
29일차 - 싱글턴/Dao 클래스/네트워크 용어 정리 (0) | 2022.02.11 |
댓글