본문 바로가기
Java/Java-basic

[Java] JDBC 기본 코드의 이해

by 어썸오184 2021. 2. 21.
728x90
반응형

JDBC를 이용하는 작업의 일반적인 순서는 다음과 같다.

  • DB 연결을 위한 Connection을 가져온다.
  • SQL을 담은 Statement(또는 PreparedStatement)를 만든다.
  • 만들어진 Statement를 실행한다.
  • 조회의 경우 SQL 쿼리의 실행 결과를 ResultSet으로 받아서 정보를 저장할 오브젝트에 옮겨준다.
  • 작업 중에 생성된 Connection, Statement, ResultSet의 리소스를 닫아준다.
  • JDBC API가 만들어내는 예외를 처리하거나 메서드 밖으로 던진다.

 

JDBC 동작방식

 

JDK 1.6부터는  getConnection을 수행할 때 드라이버를 자동으로 로드하기 때문에 Class.forName을 통한 클래스 로드 작업을 하지 않아도 된다.

쿼리를 실행하면 서버 쪽에서는 결과 집합이 생성되며, 클라이언트는 ResultSet 객체를 얻게 된다. 주의할 점은 ResultSet 객체는 결과 집합 전체가 아니라 결과 집합의 레코드 하나를 담는 그릇이라는 것이다. 결과 집합 전체를 클라이언트로 넘겨줄 수는 없기 때문에(결과 집합이 엄청나게 클 수 있기 때문) 결과 집합은 서버에 남아있고 클라이언트는 결과 집합의 레코드 하나를 가리키는 커서를 얻게 된다.

커서는 처음에 파일의 제일 첫 부분(Before Of File)을 가리키고 있어서 첫 레코드를 가져오려면 next() 메서드를 통해 커서를 다음 부분으로 옮겨야한다. 커서가 레코드를 가리키면 레코드 정보가 ResultSet 객체에 담기게 되고 이를 우리가 이용하는 것이다. 

 

728x90
반응형

댓글