관리 메뉴

클라이언트/ 서버/ 엔지니어 "게임 개발자"를 향한 매일의 공부일지

자바 JDBC 7 - JDBC 기초 실습해보기 7 : Select 클래스 만들고 동적로딩하기 + RS의 특징 알아보기 본문

프로그래밍 언어/자바

자바 JDBC 7 - JDBC 기초 실습해보기 7 : Select 클래스 만들고 동적로딩하기 + RS의 특징 알아보기

huenuri 2024. 12. 13. 06:53

각 클래스의 테이블에 영향을 주지 않고 탐색만 하는 Select 클래스를 만들어보겠다. Select 클래스를 만드는 이유는 데이터베이스에 있는 값을 자바에서 확인하기 위해서이다.


 
 
 
 

Select 클래스 만들기

 

1. 클래스 만들고 동적 로딩하기


 
 
 
 

2. 데이터베이스 연결 권한 확인


 
 
 

3. 전역변수 만들기


 
 
 

4. DriverManager의 연결 권한 확인하기

 
여기까지 코드를 작성하고 실행해보았다.
 
 

 
출력문이 아무것도 안 뜨는 것을 보니 오류 없이 잘 실행된 것이다.


 
 
 

5. 쿼리문 작성하기

 

 
SELECT문은 executeQuery()로 실행한다. 이때 받아오는 return type은 ResultSet이다. 자바에서 데이터는 변수 형태이지만, 데이터베이스에서 데이터는 테이블 형태로 저장된다. ResultSet은 데이터베이스에서 테이블 형태로 관리되는 것처럼 자바에서 테이블 형태로 사용할 수 있는 자료형이다.
이 저장된 데이터를 출력하려면 하나하나씩 꺼내주는 작업을 진행해야 한다.


 
 
 

6. ResultSet 자료형 형태로 쿼리문 보내기

 
이것을 rs라는 변수의 자료형에 담을 것이다. ResultSet도 테이블 형태의 데이터이므로 마지막에 자원 반납이 이루어져야 한다.
 
 

 
자원을 반납하기 위해서는 전역변수로 선언해야 하므로 rs로만 변수를 만들고 앞에서 전역변수로 선언해준다.


 
 
 
 

7. ResultSet 전역변수로 선언하기

 

ResultSet의 또다른 특징이 있다. rs는 자바에서 사용할 수 있는 테이블 형태로 데이터를 받아온다.


 
 
 
 
 

ResultSet의 또 다른 특징 : 화살표

ResultSet을 저장한 rs는 다음과 같은 형태의 데이터가 들어있다.
 

 
rs가 받아온 값을 표로 정리해보았다. 값을 받아오면 rs에서는 커서 즉 화살표가 만들어진다. 안드로이드에서는 이 화살표를 커서라고 표현하는데 자바에서는 rs라고 표현한다.
 
 
 
 
 

 
화살표는 데이터가 있는지 없는지 탐색해서 없으면 가져오는 역할을 한다. 만약 아래 칸을 탐색하고 싶으면 커서를 한 칸 이동해야 한다.
 
 
 
 

 
이때 rs.next()를 사용하면 커서는 조자연이라는 행으로 이동한다. next()는 행에 데이터가 있는지 없는지 탐색하고 있으면 true를 반환한다.
우리는 rs가 가지고 있는 데이터를 얻어올 것이다. 만약 이름이라면 getString("Name")을 써준다.
 
 
 
 

 
이렇게 쓰면 한 행에 대한 데이터를 변수 형태로 모두 가져올 수 있다. 그런 다음 최영화 행으로 이동하려면 화살표가 한 칸 움직여야 하고 이때 rs.next()를 쓰면 된다.
그 다음 데이터가 얼마나 있는지는 알 수 없다. 만약 rs.next() 한번 더 해서 false가 나오면 데이터가 없는 것이다. 이때 반복문을 사용하는데 while을 사용하는 것이 좋다.


 
 
 
 

학습을 마치고

아직 Select 클래스를 다 만들지 않았지만 여기서 일단 학습을 종료한다. rs가 어떤 특징이 있는지 알게 되었다는 것이 이번 수업의 가장 큰 소득이었다.
다음 포스트에서 Select 클래스에 대한 내용을 이어서 진행해보겠다.