본문 바로가기

TIL

<자바 Java> DB 연동하기 (2)

- DB 연동 준비하기

3. 커넥션(Connection) 객체 구해오기

2번까지 JDBC를 자바에서 이용 가능한 객체로 구현하였다면, 이제 JDBC를 통해 DB를 사용하기 위해 DB와 연결된되어있는 커넥션 객체를 구해야 한다. 그러니까 JDBC만으로 DB와 연결할 수 있는 것은 아닌 셈... 커넥션 객체는 java.sql.connection 클래스 타입이며, java.sql.DriverManger 클래스가 제공하는 getConnection() 메서드를 통해 구해올 수 있다. 

Connection con = null;
conn = DriverManager.getConnection(url, id, pw);

 

이 때, 연결할 DB와 관련된 정보를 getConnection() 메서드에 매개변수로 함께 전달해주면, 지금 연결하려는 DB가 어떤 것인지 정확히 정보를 알려주는 것이 된다. 전달할 정보로는 JDBC의 URL과 DB의 ID, PW로 3가지이다.

 

- 예외처리

DriverManager.getConnection()는 만약 커넥션 객체를 가져오지 못할 경우 SQLException을 발생시킨다. 따라서 예외처리도 꼭 함께 해주어야 함을 기억하자.

 

 

4. Statement 객체 생성하기

이 과정은 이제 커넥션 객체를 성공적으로 가져온 뒤, 본격적으로 DB에 내릴 명령문인 쿼리문을 작성하기 위한 준비작업이라고 할 수 있다. DB와 연결된 커넥션 객체를 매개로 준비하는 것이기 때문에, 커넥션 객체의 참조변수에 접근하는 형태로, 메서드 createStatement()를 사용하여 쿼리문 준비를 마친다.

Statement stmt = null;
stmt = conn.createStatement();

 

 

5. 쿼리 실행하기

준비과정을 마쳤다면 이제 Statement 객체를 통해 쿼리를 실행할 수 있다. Statement 객체의 참조변수에 접근하는 형태로 메서드 executeQuery()에 매개변수로 쿼리문을 객체로 생성하여 전달하고, 해당 메서드의 리턴값은 java.sql.ResultSet 클래스의 객체로 저장한다.

String query = "select * from table"; //쿼리문 변수로 미리 저장
ResultSet rs = stmt.executeQuery(query);

그리고 이제 필요하다면 마찬가지로 java.sql.ResultSet 클래스가 제공하는 next() 메서드를 통해 가져오려는 데이터를 행으로 구분하여 가져올 수 있다.

 

 

6. 종료

DB 연동 시 사용한 객체를 모두 사용한 뒤에는 사용했던 시스템 자원을 반환해야 한다. 불필요한 자원의 낭비가 계속되는 것을 막기 위함이다. 메서드는 close()를 사용한다.

rs.close();
stmt.close();
con.close();