23.04.18 JDBC

김민성·2023년 4월 18일
1

JDBC란?

Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 데이터베이스에 저장 및 업데이트하거나 반대로 데이터베이스에 저장된 데이터를 Java 코드 레벨에서 사용할 수 있도록 해주는 Java에서 제공하는 표준 사양

JDBC 드라이버
데이터베이스와의 통신을 담당하는 인터페이스로 Oracle이나 MS SQL, MySQL 같은 다양한 벤더에 맞는 JDBC 드라이버를 구현해서 제공을 하게 되고 이 구현체를 이용해서 특정 벤더의 데이터베이스에 액세스 할 수 있다.

JDBC 드라이버 로딩
사용하고자 하는 JDBC 드라이버를 로딩합니다. JDBC 드라이버는 DriverManager라는 클래스를 통해서 로딩된다.

Connection 객체 생성
JDBC 드라이버가 정상적으로 로딩되면 DriverManager를 통해 데이터베이스와 연결되는 세션(Session)인 Connection 객체를 생성한다.

Statement 객체 생성
Statement 객체는 작성된 SQL 쿼리문을 실행하기 위한 객체로써 객체 생성 후에 정적인 SQL 쿼리 문자열을 입력으로 가진다.

Query 실행
생성된 Statement 객체를 이용해서 입력한 SQL 쿼리를 실행한다.

ResultSet 객체로부터 데이터 조회
실행된 SQL 쿼리문에 대한 결과 데이터 셋이다.

ResultSet 객체 Close, Statement 객체 Close, Connection 객체 Close
JDBC API를 통해 사용된 객체들은 사용 이후에 사용한 순서의 역순으로 차례로 Close를 해주어야 한다.

Connection Pool이란?

애플리케이션 로딩 시점에 Connection 객체를 미리 생성해 두고 애플리케이션에서 데이터베이스에 연결이 필요할 경우, Connection 객체를 새로 생성하는 것이 아니라 미리 만들어 둔 Connection 객체를 사용함으로써 애플리케이션의 성능을 향상할 수 있다.
이처럼 Connection Pool은 데이터베이스 Connection을 미리 만들어서 보관하고 애플리케이션이 필요할 때 이 Connection을 제공해주는 역할을 한다.

Spring Data JDBC란?
JPA처럼 ORM 기술을 사용하지만 JPA의 기술적 복잡도를 낮춘 기술이다.

ORM(Object-Relational Mapping)

  • 데이터베이스에 접근하기 위해 쿼리문을 직접 작성하지 않고 Java 객체를 이용해 애플리케이션 내부에서 이 객체를 쿼리문으로 자동 변환 한 후에 접근하는 방식

0개의 댓글