[java] 자바와 데이터베이스 연동(JDBC)

개요

자바는 데이터베이스와 연동하여 데이터를 가져오거나 저장하는 작업을 수행할 수 있습니다. 이를 위해 Java Database Connectivity (JDBC)라는 API를 사용하여 데이터베이스에 접속하고 SQL 문을 실행하는 방법을 제공합니다.

JDBC 드라이버 설치

먼저, JDBC 드라이버를 설치해야 합니다. JDBC 드라이버는 데이터베이스 제조사에서 제공하는 라이브러리로, 데이터베이스에 접속 및 쿼리를 실행하는데 필요한 기능들이 포함되어 있습니다. 각 데이터베이스 제조사의 홈페이지에서 해당 드라이버를 다운로드하고, 프로젝트의 클래스패스에 추가해야 합니다.

데이터베이스 연결

데이터베이스에 연결하기 위해서는 JDBC 드라이버를 로드하고 데이터베이스 URL, 사용자명, 비밀번호를 설정해야 합니다. 다음은 MySQL 데이터베이스에 연결하는 예제 코드입니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class DatabaseConnection {
    public static void main(String[] args) {
        // JDBC 드라이버 로드
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        }
        
        // 데이터베이스 연결
        Connection connection = null;
        try {
            String url = "jdbc:mysql://localhost:3306/mydb";
            String username = "root";
            String password = "password";
            connection = DriverManager.getConnection(url, username, password);
            System.out.println("데이터베이스에 연결되었습니다.");
            
            // 작업 수행
            // ...
            
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 연결 종료
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

위 코드에서는 Class.forName() 메서드를 사용하여 JDBC 드라이버를 로드한 후, DriverManager.getConnection() 메서드를 사용하여 데이터베이스에 연결합니다. 데이터베이스의 URL, 사용자명, 비밀번호를 인자로 전달해야 합니다.

SQL 실행

데이터베이스에 연결한 후, SQL 문을 실행하여 데이터를 가져오거나 저장할 수 있습니다. JDBC에서는 java.sql.Statement 인터페이스를 사용하여 SQL문을 실행하고 결과를 처리합니다. 다음은 SELECT 쿼리를 실행하여 데이터를 조회하는 예제 코드입니다.

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DatabaseQuery {
    public static void main(String[] args) {
        // 데이터베이스 연결
        Connection connection = null;
        try {
            String url = "jdbc:mysql://localhost:3306/mydb";
            String username = "root";
            String password = "password";
            connection = DriverManager.getConnection(url, username, password);
            
            // SQL 실행
            Statement statement = connection.createStatement();
            String sql = "SELECT * FROM users";
            ResultSet resultSet = statement.executeQuery(sql);
            
            // 결과 처리
            while (resultSet.next()) {
                int id = resultSet.getInt("id");
                String name = resultSet.getString("name");
                System.out.println("ID: " + id + "\tName: " + name);
            }
            
        } catch (SQLException e) {
            e.printStackTrace();
        } finally {
            // 연결 종료
            if (connection != null) {
                try {
                    connection.close();
                } catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
    }
}

위 코드에서는 Connection.createStatement() 메서드를 사용하여 SQL 문을 실행할 Statement 객체를 생성합니다. Statement.executeQuery() 메서드를 사용하여 SELECT 쿼리를 실행하고, 그 결과를 ResultSet 객체로 받아옵니다. resultSet.next() 메서드를 사용하여 결과를 하나씩 처리할 수 있습니다.

결론

자바와 데이터베이스를 연동하는 과정은 JDBC API를 사용하여 쉽게 이루어질 수 있습니다. JDBC 드라이버 설치, 데이터베이스 연결, SQL 실행 및 결과 처리 등을 통해 데이터베이스와 데이터를 주고받을 수 있습니다.

참고 자료