Java Database Connectivity(JDBC)는 Java 애플리케이션이 데이터베이스와 상호작용 할 수 있도록 지원하는 표준 API입니다. JDBC를 활용하면 SQL 쿼리를 실행하고, 데이터를 검색하거나 업데이트하는 작업을 손쉽게 처리할 수 있습니다. 이번 블로그에서는 JDBC를 이용해 데이터베이스와 연결하고 SQL 쿼리를 실행하는 방법을 단계 별로 알아보겠습니다.
1. JDBC란?
JDBC(Java Database Connectivity)는 Java 애플리케이션과 다양한 데이터베이스 시스템(MySQL, Oracle, PostgreSQL 등) 간의 연결을 관리하는 표준 인터페이스입니다.
JDBC의 주요 구성 요소
2. JDBC를 이용한 기본 데이터베이스 연결
다음은 MySQL 데이터베이스에 연결하는 예제입니다.
예제 코드
import java.sql.*;
public class JDBCConnectionExample {
public static void main(String[] args) {
String url = "jdbc:mysql://localhost:3306/testdb";
String username = "root";
String password = "password";
try {
// 데이터베이스 연결
Connection connection = DriverManager.getConnection(url, username, password);
System.out.println("데이터베이스에 연결되었습니다.");
// 연결 종료
connection.close();
} catch (SQLException e) {
System.out.println("데이터베이스 연결 실패: " + e.getMessage());
}
}
}
설명
DriverManager.getConnection()
: 데이터베이스와 연결을 생성 합니다.url
: 데이터베이스의 위치 (호스트명, 포트, 데이터베이스 이름 포함)입니다.username
과 password
: 데이터베이스 접근을 위한 인증 정보입니다.3. SQL 쿼리 실행하기
데이터베이스 연결 후, SQL 쿼리를 실행하여 데이터를 삽입, 검색, 업데이트, 삭제할 수 있습니다.
String insertQuery = "INSERT INTO users (name, email) VALUES ('John Doe', 'john@example.com')";
try (Connection connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement()) {
int rowsInserted = statement.executeUpdate(insertQuery);
System.out.println(rowsInserted + "개의 행이 삽입되었습니다.");
} catch (SQLException e) {
System.out.println("쿼리 실행 실패: " + e.getMessage());
}
String selectQuery = "SELECT * FROM users";
try (Connection connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement();
ResultSet resultSet = statement.executeQuery(selectQuery)) {
while (resultSet.next()) {
System.out.println("ID: " + resultSet.getInt("id") + ", Name: " + resultSet.getString("name") + ", Email: " + resultSet.getString("email"));
}
} catch (SQLException e) {
System.out.println("쿼리 실행 실패: " + e.getMessage());
}
String updateQuery = "UPDATE users SET email = 'new_email@example.com' WHERE id = 1";
try (Connection connection = DriverManager.getConnection(url, username, password);
Statement statement = connection.createStatement()) {
int rowsUpdated = statement.executeUpdate(updateQuery);
System.out.println(rowsUpdated + "개의 행이 업데이트되었습니다.");
} catch (SQLException e) {
System.out.println("쿼리 실행 실패: " + e.getMessage());
}
4. PreparedStatement 사용하기
PreparedStatement
는 SQL 인젝션 공격을 방지하고, 쿼리 실행 속도를 향상시킵니다.
예제:
String preparedQuery = "INSERT INTO users (name, email) VALUES (?, ?)";
try (Connection connection = DriverManager.getConnection(url, username, password);
PreparedStatement preparedStatement = connection.prepareStatement(preparedQuery)) {
preparedStatement.setString(1, "Jane Doe");
preparedStatement.setString(2, "jane@example.com");
int rowsInserted = preparedStatement.executeUpdate();
System.out.println(rowsInserted + "개의 행이 삽입되었습니다.");
} catch (SQLException e) {
System.out.println("쿼리 실행 실패: " + e.getMessage());
}
5. JDBC 사용 시 주의사항
Connection
, Statement
, ResultSet
과 같은 객체를 사용 후 반드시 닫아야 합니다.try-with-resources
를 사용하면 자원을 자동으로 해제할 수 있습니다.PreparedStatement
를 사용하여 입력값을 처리 합니다.mysql-connector-java
라이브러리 필요)결론
Java에서의 데이터베이스 연결 중 JDBC를 이용한 SQL 쿼리 실행에 대해 알아보았습니다. JDBC는 Java 애플리케이션에서 데이터베이스와 상호작용하는 표준화된 방법을 제공하는데 연결 설정, SQL 실행, 자원 관리를 적절히 활용하면 데이터베이스 작업을 효율적으로 처리할 수 있습니다.
실무에서는 PreparedStatement
와 커넥션 풀을 적극 활용하여 성능과 보안성을 향상시키는 것이 중요합니다. 다음 블로그에서는 Java에서 JSON 파싱과 생성 방법에 대해서 알아 보겠습니다. 감사합니다.
오키나와 나하공항에 도착하거나 돌아가는 길, 바쁜 비행 일정에 쫓겨 허겁지겁 평범한 음식으로 끼니를 대충 때우신…
간사이 여행을 계획 중이신가요? 오사카, 교토, 고베를 아우르는 간사이 지역 여행에서 가장 중요한 필수품이 바로…
일본으로의 여행을 꿈꾸며 설레는 마음으로 출발을 준비할 때, 반드시 잊지 말아야 할 부분이 있습니다. 그것은…
일본여행의 준비 청소년 시기, 가장 많이 꿈꾸는 ‘해외여행’. 그 중에서도 한국에서 가깝고 볼거리·즐길거리도 다양해 많은…