
애플리케이션과 데이터베이스 연결
H2 데이터베이스 서버를 실행해놔야 함
cd 경로명 : 다운받은 h2 폴더의 bin 폴더로 이동 ./h2.sh : MAC 기준 H2 서버를 실행

abstract 로 선언public static final 로 선언규약이므로 지켜야 함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 = "";
}
java.sql.ConnectionDriverManager의 getConnection을 사용해 데이터베이스와 연결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);
log.info("get connection={}, class={}", connection, connection.getClass());
return connection;
} catch (SQLException e) {
throw new IllegalStateException(e);
}
}
}
org.assertj.core.apipackage hello.jdbc.connection;
import lombok.extern.slf4j.Slf4j;
import org.assertj.core.api.Assertions;
import org.junit.jupiter.api.Test;
import java.sql.Connection;
@Slf4j
class DBConnectionUtilTest {
@Test
void connections() {
Connection connection = DBConnectionUtil.getConnection();
Assertions.assertThat(connection).isNotNull();
}
}
테스트 코드 실행 결과

11:38:44.762 [Test worker] INFO hello.jdbc.connection.DBConnectionUtil - get connection=conn0: url=jdbc:h2:tcp://localhost/~/test user=SA, class=class org.h2.jdbc.JdbcConnection
JDBC 커넥션 인터페이스와 구현

java.sql.Connection 표준 커넥션 인터페이스를 정의org.h2.jdbc.JdbcConnection 구현체 제공DriverManager
DriverManager 커넥션 요청 흐름

DriverManager.getConnection() 호출DriverManager는 라이브러리에 등록된 드라이버 목록을 자동 인식jdbc:h2:tcp://localhost/~/testjdbc:h2로 시작하면 이것은 h2 데이터베이스에 접근하기 위한 규칙java.sql.Connection 인터페이스를 구현함H2 데이터베이스 드라이버 라이브러리
runtimeOnly 'com.h2database:h2' // h2~.jar