반응형
JDBC란?
- JDBC(Java Database Connectivity)는 자바 프로그래밍 언어에서 데이터베이스와 연결하고 상호작용하기 위한 API입니다. JDBC를 사용하면 자바 애플리케이션이 다양한 관계형 데이터베이스에 접근할 수 있습니다.
1. JDBC의 개념
- 목적: JDBC는 자바 애플리케이션과 데이터베이스 간의 데이터 전송을 가능하게 하는 인터페이스입니다. 이를 통해 SQL 쿼리를 실행하고, 결과를 가져오는 등의 작업을 수행할 수 있습니다.
- 플랫폼 독립성: 자바는 "한 번 작성하면, 어디서나 실행"이라는 원칙을 따르므로, JDBC를 사용하면 다양한 데이터베이스에 대해 동일한 코드로 접근할 수 있습니다.
2. JDBC의 구성 요소
JDBC는 다음과 같은 주요 구성 요소로 이루어져 있습니다.
1) JDBC 드라이버: 데이터베이스와의 연결을 관리하는 소프트웨어입니다. 각 데이터베이스에 맞는 드라이버를 사용해야 합니다. 드라이버는 크게 네 가지 유형으로 나눌 수 있습니다:
- JDBC-ODBC 브리지 드라이버: ODBC를 통해 데이터베이스에 연결 (구식)
- 네이티브 API 드라이버: 데이터베이스의 네이티브 API를 사용하여 연결
- 순수 Java 드라이버: 순수 자바로 작성된 드라이버로, 데이터베이스와의 연결을 위해 JDBC API를 사용
- 통합 드라이버: 여러 데이터베이스에 대한 지원을 포함하는 드라이버
2) Connection: 데이터베이스와의 연결을 나타내는 객체입니다. 이 객체를 통해 SQL 문을 실행하고 결과를 받을 수 있습니다.
3) Statement: SQL 문을 데이터베이스에 전달하는 객체입니다. SQL 문을 실행하고, 결과를 가져오는 역할을 합니다.
- Statement: 일반 SQL 문을 실행
- PreparedStatement: 파라미터화된 SQL 문을 실행 (SQL 인젝션 방지)
- CallableStatement: 저장 프로시저를 호출하는 데 사용
4) ResultSet: SQL 쿼리 실행 결과를 저장하는 객체입니다. 이 객체를 통해 데이터베이스에서 반환된 데이터를 읽을 수 있습니다.
3. JDBC 사용 방법
JDBC를 사용하여 데이터베이스와 상호작용하는 기본적인 흐름은 다음과 같습니다:
- JDBC 드라이버 로드: JDBC 드라이버를 메모리에 로드합니다.
- 데이터베이스 연결: DriverManager를 사용하여 데이터베이스에 연결합니다.
- SQL 문 실행: Statement 또는 PreparedStatement를 사용하여 SQL 문을 실행합니다.
- 결과 처리: ResultSet을 사용하여 쿼리 결과를 처리합니다.
- 자원 해제: 연결 및 기타 자원을 닫습니다.
요약
- JDBC: 자바에서 데이터베이스와 상호작용하기 위한 API입니다.
- 구성 요소: JDBC 드라이버, Connection, Statement, ResultSet 등이 있습니다.
- 사용 방법: 드라이버 로드, 데이터베이스 연결, SQL 실행, 결과 처리, 자원 해제로 구성됩니다.
JDBC는 자바에서 데이터베이스와의 연결을 관리하는 중요한 방법입니다. 이 기본 개념을 이해하면, 더 복잡한 데이터베이스 작업이나 ORM (Object-Relational Mapping) 라이브러리인 JPA와 같은 기술로 나아가는 데 도움이 됩니다.
예제코드
import java.sql.*;
public class JdbcExample {
public static void main(String[] args) {
// JDBC URL, 사용자명, 비밀번호 설정
String jdbcUrl = "jdbc:mysql://localhost:3306/your_database_name";
String user = "your_username";
String password = "your_password";
Connection connection = null;
Statement statement = null;
ResultSet resultSet = null;
try {
// 1. JDBC 드라이버 로드
Class.forName("com.mysql.cj.jdbc.Driver");
// 2. 데이터베이스 연결
connection = DriverManager.getConnection(jdbcUrl, user, password);
// 3. SQL 문 실행
statement = connection.createStatement();
String sql = "SELECT * FROM employees"; // 직원 테이블에서 모든 데이터 조회
resultSet = statement.executeQuery(sql);
// 4. 결과 처리
while (resultSet.next()) {
int id = resultSet.getInt("id");
String name = resultSet.getString("name");
String position = resultSet.getString("position");
System.out.println("ID: " + id + ", Name: " + name + ", Position: " + position);
}
} catch (ClassNotFoundException e) {
e.printStackTrace();
} catch (SQLException e) {
e.printStackTrace();
} finally {
// 5. 자원 해제
try {
if (resultSet != null) resultSet.close();
if (statement != null) statement.close();
if (connection != null) connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
반응형
'IT개발 > JAVA' 카테고리의 다른 글
AJAX(Asynchronous JavaScript and XML)란? (0) | 2024.11.21 |
---|---|
Connection, Statement, PrepareStatement(JDBC/Java/백엔드개발) (1) | 2024.11.19 |
자바 백엔드 개발 공부 흐름 요약(Java/backend/programing) (0) | 2024.11.17 |
맥북(Mac OS) 자바 JDK 설치 경로 확인 방법 (0) | 2024.11.14 |
JAVA 수업 복습 정리(11)_Math 클래스, 난수값(java/프로그래밍/백엔드/Random/개발) (0) | 2024.11.12 |
댓글