개발 일지/Java

[Java] JDBC

미숫가루설탕많이 2023. 2. 20. 13:16

 JDBC(Java Database Connectivity)란 Java 기반 애플리케이션의 코드 레벨에서 사용하는 데이터를 데이터베이스에 접근할 수 있도록 하는 자바 API이다.

 

 Java 개발자는 JDBC API를 사용해서 다양한 벤더(Oracle, MySQL등)의 데이터베이스와 연동할 수 있고 데이터베이스에서 데이터를 쿼리하거나 업데이트하는 등의 작업을 수행하는 데 사용된다.

 

 

 

 

JDBC의 사용

 

 JDBC를 사용하려면 먼저 데이터베이스 드라이버를 로드해야 한다. JDBC 드라이버는 DrivcerManager라는 클래스를 통해 로딩된다.

 

 드라이버를 로드한 후, DriverManager를 통해 데이터베이스와 연결되는 세션인 Connection 객체를 생성하여 데이터베이스와의 연결을 설정한다.

 

  다음으로 Statement 객체를 생성한다. JDBC API에서는 다양한 종류의 Statement를 제공하는데, 가장 간단한 것은 Statement 객체이다. 이 객체는 SQL 쿼리를 실행하고 결과를 반환하는 데 사용된다.

 

 생성된 Statement 객체를 이용해서 입력한 SQL 쿼리를 실행한 후, ResultSet 객체를 통해 SQL 쿼리의 결과를 저장하고 한 번에 한 행씩 결과를 읽어올 수 있다.

 

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

 

 만약 더 복잡한 작업을 수행하려면 PreparedStatement와 CallableStatement 객체를 사용할 수 있다. PreparedStatement는 SQL 쿼리를 미리 컴파일하여 쿼리를 여러 번 실행할 때 성능을 높일 수 있고 SQL 쿼리의 매개변수를 쉽게 전달할 수 있다는 장점이 있다. CallableStatement는 저장 프로시저를 호출할 때 사용된다. 여기서 저장 프로시저는 데이터베이스에서 미리 컴파일된 SQL 코드 블록이다.

 

 

 

 

Connection Pool

 

 JDBC API를 사용해서 데이터베이스와의 연결을 위한 Connection 객체를 생성하는 작업은 비용이 많이 드는 작업 중 하나이다. 따라서 매번 데이터베이스와 연결을 맺고 끊는 것은 비효율적이다.

 

 이런 비효율성을 개선하기 위해 데이터베이스 연결을 관리하고 재사용하는 기술을 Connection Pool이라고 한다.

 

 Connection Pool은 애플리케이션이 데이터베이스와 연결할 때마다 매번 새로운 연결을 생성하는 대신 미리 생성된 연결 객체를 풀에 저장해놓고 재사용하는 방식으로, 애플리케이션이 데이터베이스와의 연결을 매번 생성하고 닫는 데 드는 오버헤드를 줄임으로써 애플리케이션의 성능을 향상시킬 수 있다.

'개발 일지 > Java' 카테고리의 다른 글

[Java] @NotNull / @NotEmpty / @NotBlank  (0) 2023.04.18
[Java] JPA  (0) 2023.02.23
[Java] 자바 가상머신(JVM)  (0) 2023.01.10
[Java] 스레드(thread)  (0) 2023.01.10
[Java] 스트림(Stream)  (0) 2023.01.06