자바에서 데이터베이스 접속할 수 있도록 하는 자바 API이다.
JDBC를 사용함으로써 데이터베이스에서 자료를 쿼리(Query-DB에 정보를 요청)하거나 업데이트 할 수 있다.
순수 jdbc로 데이터베이스에 접근을 하면, 데이터베이스에 접근할 때마다 connection을 맺고 끊는 작업을 한다. 이 connection을 맺고 끊는 작업을 줄이기 위해 미리connection을 생성해 두고, 데이터베이스에 접근하고자 하는 사용자에게 미리 생성된 connection을 제공하고 돌려받는다. 이 connection들을 모아두는 장소를 connection pool이라 하며
Datasource는java에서connection pool을 지원하기 위한 인터페이스이다.
위 사진대로 동작이 진행된다.
이며 코드로 표현하면
public int ex() { /
int cnt = 0;
try {
String sql = "select * from exdata";
conn = ds.getConnection();
pstmt = conn.prepareStatement(sql);
rs = pstmt.executeQuery();
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
try {
if(rs!=null) rs.close();
if(pstmt!=null) pstmt.close();
if(conn!=null) conn.close();
} catch (Exception e2) {
// TODO: handle exception
}
}
return cnt;
}
⚠️ 이때 주의할 점은 사용하는 SQL문에 따라서 rs가 메소드가 달라진다.
select 일때는 executeQuery() 를 사용하고
insert,update,delete를 사용할땐 executeUpdate()를 사용한다.
⚠️ ResultSet, Statement, Connection 객체들의 Close : JDBC API를 통해 사용된 객체들은 생성된 객체들을 사용한 순서의 역순으로 Close 한다.
Connection 객체를 미리 생성하여 보관하고 애플리케이션이 필요할 때 꺼내서 사용할 수 있도록 관리해 주는 것이 Connection Pool이다.
1. Java 애플리케이션을 시작하는 타이밍에 Connection Pool은 필요한 만큼의 Connection 객체를 default 값으로 10개를 미리 생성하고 보관한다.
좋은 글 잘봤습니다~!