본문 바로가기
DB (DataBase) (국비)/DB 메모

next() 메서드

by Hwanii_ 2023. 6. 9.
728x90

 

위의 next() 메서드를 보자.

 

resultSet 참조변수는 DB에서 가져온 다수의 영화 데이터 "들" 이다.

 

왜냐하면, executeQuery(sql_SELECTALL) 메서드의 인자를 보면

SELECT NUM,NAME,ODATE FROM MOVIE 이다.

MOVIE 라는 이름의 테이블에서 칼럼명 NUM,NAME,ODATE의

모든 데이터를 가져오겠다는 말.

 

while문이 참일때 계속 무한히 반복 한다.

즉, resultSet (영화 데이터 들)이 없으면 false 가 되고 while문이 종료 된다.

 

이때, next() 메서드는 pointer 라는 개념이 존재 한다.

영화 데이터 "들" 에서 영화 데이터 "하나하나"를 포인터가 가리키면서 확인 한다.

 

하나하나 가리키면서 NUM 이라는 칼럼명을 가진게 있으면 int num 변수에 넣어줘.

근데, 그 NUM은 int 타입이니까 getInt 를 사용 한 것이다.

 

동일하게,

NAME 이라는 칼럼명을 가진게 있으면 String name 변수에 넣어줘.

근데, 그 NAME은 String 타입이니까 getString을 사용 한 것이다.

 

그렇게 num, name, odate를 가져와서,

각각의 값을 MovieVO 타입의 객체로 만들고,

그 객체(영화)를 ArrayList<MovieVO> 배열리스트에 add() 한다.

 

이 행동을 resultSet.next()가 false가 될때까지 반복 한다.

 

 

이 참조변수를 주체로 해서 next() 메서드를 사용하면,

resultSet이 참이면 if문이 실행되고,

resultSet이 거짓이면 if문이 생략된다.

 

즉, 데이터가 있으면 참이고, 없으면 거짓인데

외부에서 입력했던 영화 객체 고유번호를 담은 

"SELECT NUM,NAME,ODATE FROM MOVIE WHERE NUM = " + mVO.getNum() + ";";

resultSet = statement.executeQuery(sql_SELECTONE);

에 담기고,

 

이때 존재하지 않는 번호면 F

이때 존재하는 번호면 T 가 된다.

 

존재하는 번호였으면 T 이기에

 

NUM, NAME, ODATE 라는 칼럼명을 가진 

열을 확인해서, 그 이름값을 각각 타입의 변수에 저장을 한다.

 

그리고, 그 정보를 가진 객체 묶음을 return 값으로 주는 것 이다.

 

[  Console ]

 

 

위와 같이 샘플 데이터를 웹페이지에서 크롤링 했고,

 

각 영화들은 고유의 번호를 지니고 있다.

 

 

그리고 156번을 검색하면

 

해당 번호를 가진 영화가 출력 되는 모습을 확인 할 수 있다.

반응형

'DB (DataBase) (국비) > DB 메모' 카테고리의 다른 글

JDBC 필수 요소 4가지  (0) 2023.06.11
수업 메모  (2) 2023.06.10
JDBC 모듈화 관련 개념  (0) 2023.06.09
메모  (0) 2023.06.07
자바에서 웹 크롤링 해보기  (0) 2023.05.31