

이 내용은 JDBC(Java Database Connectivity)를 사용하여 자바 애플리케이션에서 데이터베이스와 상호작용하는 방법을 설명한다. 아래는 개념, 사용방법, 왜 사용하는지, 유의점 , 실제 개발 과정, 논리적 과정을 포함한다.
1. JDBC 드라이버 로드
java
Class.forName("com.mysql.cj.jdbc.Driver");
위의 명령어는 일반적으로 데이터베이스와의 연결을 설정하는 부분에 위치한다.
이 코드는 주로 자바 프로젝트의 메인 클래스나 데이터베이스 연결을 담당하는 유틸리티 클래스에 작성한다.
<예제 프로젝트 구조>
jdbc_example/
│
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ ├── Main.java
│ │ │ └── DatabaseUtil.java
│ │ └── resources/
│ │
└── build.gradle
-Main.java-
메인 클래스에서 데이터베이스 유틸리티 클래스를 사용하여 데이터베이스 연결을 테스트한다.
Java
package com.example;
public class Main {
public static void main(String[] args) {
DatabaseUtil databaseUtil = new DatabaseUtil();
databaseUtil.connect();
databaseUtil.executeQuery("SELECT * FROM users");
}
}
- DatabaseUtil.java -
데이터베이스 연결을 설정하고 관리하는 유틸리티 클래스이다.
java
package com.example;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class DatabaseUtil {
private static final String URL = "jdbc:mysql://localhost:3306/jdbc_ex";
private static final String USER = "jdbc_ex1";
private static final String PASSWORD = "jdbc_ex1";
private Connection conn = null;
// 데이터베이스 연결 설정
public void connect() {
try {
// JDBC 드라이버 로드
Class.forName("com.mysql.cj.jdbc.Driver");
// 데이터베이스 연결 설정
conn = DriverManager.getConnection(URL, USER, PASSWORD);
System.out.println("Database connected successfully!");
} catch (ClassNotFoundException e) {
System.err.println("JDBC Driver not found: " + e.getMessage());
} catch (SQLException e) {
System.err.println("Database connection error: " + e.getMessage());
}
}
// SQL 쿼리 실행
public void executeQuery(String query) {
Statement stmt = null;
ResultSet rs = null;
try {
if (conn != null) {
// Statement 객체 생성
stmt = conn.createStatement();
// SQL 문 실행
rs = stmt.executeQuery(query);
// 결과 처리
while (rs.next()) {
System.out.println("ID: " + rs.getString("ID") + ", Name: " + rs.getString("NAME"));
}
}
} catch (SQLException e) {
System.err.println("SQL execution error: " + e.getMessage());
} finally {
// 리소스 해제
try {
if (rs != null) rs.close();
if (stmt != null) stmt.close();
} catch (SQLException e) {
System.err.println("Error closing resources: " + e.getMessage());
}
}
}
// 데이터베이스 연결 해제
public void disconnect() {
if (conn != null) {
try {
conn.close();
System.out.println("Database connection closed.");
} catch (SQLException e) {
System.err.println("Error closing connection: " + e.getMessage());
}
}
}
}
//설명:
/* - Class.forName("com.mysql.cj.jdbc.Driver"); :
-위치 : DatabaseUtil 클래스의 connect 메서드 내.
-기능 : JDBC 드라이버를 메모리에 로드하여 데이터베이스와의 연결을 가능하게 함.
- DriverManager.getConnection(URL, USER, PASSWORD);:
-위치 : DatabaseUtil 클래스의 connect 메서드 내.
-기능 : 데이터베이스와 실제 연결을 설정함.
- Connection conn = DriverManager.getConnection(url, user, password);:
• 위치: DatabaseUtil 클래스의 connect 메서드 내.
• 기능: 데이터베이스와 실제 연결을 설정합니다.
• 유의점: URL, 사용자명, 비밀번호가 정확히 입력되어야 하며, 연결 실패 시 예외 처리가 필요합니다.
- Statement stmt = conn.createStatement();:
• 위치: DatabaseUtil 클래스의 executeQuery 메서드 내.
• 기능: SQL 쿼리를 실행하기 위한 Statement 객체를 생성합니다.
• 유의점: Statement 객체를 사용하여 SQL 쿼리를 실행하고, 실행 후 반드시 close() 메서드를 호출하여 리소스를 해제해야 합니다.
*/
< 파일 작성 및 실행 방법 >
1.프로젝트 생성 : 프로젝트 구조를 생성하고, 소스 코드를 각가의 파일에 작성.
2.의존성 추가 : build.gradle 파일에 MySQL JDBC드라이버 의존성을 추가함.
3.프로젝트 빌드 및 실행 : - gradle 명령어를 사용하여 프로젝트를 빌드하고 실행.
- ./gradle build 명령어를 사용하여 프로젝트를 빌드.
- ./gradlew run 명령어를 사용하여 프로젝트를 실행.
groovy
dependencies {
implemetation 'mysql:mysql-connector-java:8.0.28'
}
java
Connection conn = DriverManager.getConnection(url, user, password);
java
Statement stmt = conn.createStatement();
java
ResultSet rs = stmt.executeQuery("SELECT * FROM users");
java
while (rs.next()) {
String id = rs.getString("ID");
//데이터 처리
}
java
conn.close();
