DataSource

DataSource (데이터 소스)

이 DataSource 객체가 나타내는 물리적 데이터 소스에 대한 연결의 팩토리입니다. DriverManager 시설의 대안으로, DataSource 객체는 연결을 얻는 선호되는 수단입니다.

출처: Java API Reference

본문

DataSource 인터페이스를 구현하는 객체는 보통 Java Naming and Directory(JNDI) API 기반의 이름 서비스에 등록됩니다. DataSource 인터페이스는 드라이버 공급업체가 구현하며, 세 가지 유형의 구현이 있어요.

기본 구현은 표준 Connection 객체를 만들고, 연결 풀링 구현은 연결 풀링에 자동으로 참여하는 Connection 객체를 만들며, 분산 트랜잭션 구현은 분산 트랜잭션에 사용될 수 있고 거의 항상 연결 풀링에 참여하는 Connection 객체를 만듭니다.

DataSource 객체는 필요할 때 수정할 수 있는 속성을 가집니다. 예를 들어 데이터 소스가 다른 서버로 이동하면 서버 속성을 바꿀 수 있어요. 속성을 바꿀 수 있으므로 그 데이터 소스에 접근하는 코드는 변경할 필요가 없습니다.

DataSource 객체를 통해 접근하는 드라이버는 DriverManager에 자신을 등록하지 않습니다. 대신 조회 연산으로 DataSource 객체를 얻은 뒤 그것으로 Connection 객체를 만듭니다. DataSource 구현은 공용 no-arg 생성자를 포함해야 합니다.

대표적인 메서드

Connection getConnection() throws SQLException
Connection getConnection(String username, String password) throws SQLException
PrintWriter getLogWriter() throws SQLException
void setLogWriter(PrintWriter out) throws SQLException
void setLoginTimeout(int seconds) throws SQLException
int getLoginTimeout() throws SQLException
default ConnectionBuilder createConnectionBuilder() throws SQLException

더 알아보기 (Learn more)

Java 공식 API