-
**유튜브 뉴렉쳐님의 강의를 들으면서 공부하고 정리한 내용입니다.
UI를 만들고 클라이언트의 요구에 따라서 쿼리를 만드는 등의 작업을 하는데 실제 구동 코드는 드라이버가 가지고 있게 된다. 드라이버를 로드 해야지만 API가 디비 연결을 하고 실행 할 수 있게 되는 것이다.
그러기 위해선 드라이버를 로드하는게 먼저인데 드라이버를 로드 할 때에는
Class.forName("oracle.jdbc.driver.OracleDriver") 이라는 메서드를 이용해서 로드 할 수 있다. 이 클래스를 객체화 시키는 것을 로드화 한다고 한다. 이것은 특이하게 new 없이 저 코드로 객체화 할 수 있다.
드라이버를 로드 한 후 메모리가 잡히게 되면 그 다음에는
Connection con = DreiverManager.getConnection(....); 을 통해서 연결 객체를 얻게 되며
실행도구 Statement st = con. createStatement(); 를 생성하고
그 다음에 결과를 실행 한 다음에 쿼리를 실행한 후 그 결과를 다시 얻어서 패치 해 올 수 있는 도구를 생성하게 된다.
ResultSet rs = st.executeQuery(sql);
위와 같이 객체가 네개가 만들어 지게 되는데 어떠한 것 하나 new 연산자를 이용해서 생성하는 것이 없다는 것이다.
네가지 객체가 서로 개연성있게 연결이 되기 때문에 new 연산자 없이도 객체를 생성 할 수 있는 것이다.

커서가 생성이 되면 처음 파일의 위치를 Before Of File(BOF)라고 하며 첫번째 위치를 가르키며 레코드 하나가 올라오고 이 레코드를 담아주는 그릇이 바로 resultSet이다.
resultSet이 next를 하면서( rs.next();) 패치 해 올 수 있는 능력을 가지고 있는 것이다.
rs.next();이것을 호출해야만 클라이언트에게 레코드 하나가 전달 되게 되는 것이다.
이렇게 전달 된 상태에서 rs.next(); 로 결과 String title = rs.getString("title"); 을 통해서 title 컬럼에 해당하는 것을 문자열로 주세요 하면 레코드 안에서 title 컬럼에 해당하는 것을 뽑아 올 수 있는 것이고
또 rs.next(); 호출하게 되면 다음 레코드를 가르키고 새로운 레코드가 다시 전달 되게 되고 또 String title = rs.getString("title"); 주세요 하면 해당하는 것을 주게 되고
계속해서 rs.next();를 하게 되서 맨 끝까지 가게 되면 더이상 가져올게 없게 되는데 그 상태의 위치를 파일의 끝이다는 의미로 End Of File(EOF) 이라고 한다
공부한거 정리하는데 갈수록 횡설수설하는 느낌..
오늘도 급하게 마무리 해 본다..OTL..
'JDBC' 카테고리의 다른 글
레코드의 모든 컬럼 출력하기 (0) 2022.01.31 쿼리 실행해보기 (0) 2022.01.30 Exception in thread "main" java.sql.SQLException: 마지막 행 다음의 결과 집합 (0) 2022.01.30 JDBC Driver 준비하기 (0) 2022.01.26 JDBC란? (0) 2022.01.26