package hello.jdbc.connection;
public abstract class ConnectionConst {
public static final String URL = "jdbc:h2:tcp://localhost/~/test";
public static final String USERNAME = "sa";
public static final String PASSWORD ="";
}
위 코드는 데이터베이스 연결에 필요한 상수 값을 모아둔 클래스이다. 주요 특징을 간략히 설명하자면:
1. `abstract` 키워드 사용: `ConnectionConst` 클래스는 `abstract`로 선언되어, 인스턴스화(객체 생성)가 불가능하다. 이는 이 클래스가 오로지 **상수를 제공하는 역할**만 하도록 설계된 것이다.
2. 상수 선언: - `URL`, `USERNAME`, `PASSWORD`는 모두 정적(static) 상수로 선언되어 있다. - `static final` 키워드로 선언된 필드들은 변경할 수 없는 고정된 값을 가지며, 모든 인스턴스에서 공유된다.
3. 데이터베이스 연결 정보 제공: 각 상수는 데이터베이스에 연결하기 위해 필요한 정보를 담고 있다. - `URL`: H2 데이터베이스의 주소이다. - `USERNAME`: 데이터베이스 사용자 이름이다. - `PASSWORD`: 데이터베이스 비밀번호(빈 값)이다.
따라서, 이 클래스는 애플리케이션에서 데이터베이스 연결 정보를 일관성 있게 제공하기 위한 설정 파일 역할을 한다.
JDBC를사용해서실제데이터베이스에연결하는코드를작성하기
package hello.jdbc.connection;
import lombok.extern.slf4j.Slf4j;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import static hello.jdbc.connection.ConnectionConst.*;
@Slf4j
public class DBConnectionUtil {
public static Connection getConnection(){
try {
Connection connection = DriverManager.getConnection(URL, USERNAME, PASSWORD); // JDBC에서 제공된 메서드, URL과 자격 증명을 기반으로 적절한 DB 드라이버의 구현체를 찾아 연결 생성
log.info("get connection={}, class ={}",connection,connection.getClass());
return connection;
} catch (SQLException e){
throw new IllegalStateException(e);
}
}
}
데이터베이스에연결하려면 JDBC가제공하는`DriverManager.getConnection(..)` 를사용하면된다. 이렇게 하면라이브러리에있는데이터베이스드라이버를찾아서해당드라이버가제공하는커넥션을반환해준다. 여기서는 H2 데이터베이스드라이버가작동해서실제데이터베이스와커넥션을맺고그결과를반환해준다.