Java Databases

Java와 데이터베이스 (Java and Databases)

Java 애플리케이션에서 데이터베이스를 사용하기 위해 JDBC(Java Database Connectivity)를 사용합니다. JDBC는 Java에서 데이터베이스와의 연결을 가능하게 하고, SQL 쿼리를 실행하고 결과를 처리할 수 있도록 합니다.

JDBC 개요 (Overview of JDBC)

JDBC는 Java 프로그램에서 데이터베이스와 연결하여 데이터를 주고받을 수 있는 API입니다. JDBC는 일반적으로 다음과 같은 단계로 구성됩니다:

  1. 드라이버 로드: 데이터베이스 제공업체가 제공하는 JDBC 드라이버를 로드합니다.
  2. 데이터베이스 연결: JDBC 드라이버를 사용하여 데이터베이스에 연결합니다.
  3. SQL 실행: 연결된 데이터베이스에서 SQL 쿼리를 실행하여 데이터를 조회, 추가, 수정, 삭제합니다.
  4. 결과 처리: SQL 쿼리의 실행 결과를 받아와서 처리합니다.
  5. 연결 종료: 데이터베이스와의 연결을 닫습니다.

데이터베이스 연결 (Connecting to a Database)

Java에서 데이터베이스에 연결하려면 JDBC 드라이버를 사용하여 Connection 객체를 생성해야 합니다. 이를 위해 데이터베이스 제공업체가 제공하는 JDBC 드라이버 JAR 파일을 프로젝트에 포함해야 합니다.

MySQL 데이터베이스 연결 예제:

import java.sql.*;

public class DBConnectionExample {
    public static void main(String[] args) {
        // JDBC 드라이버 클래스를 로드합니다.
        try {
            Class.forName("com.mysql.cj.jdbc.Driver");
        } catch (ClassNotFoundException e) {
            System.out.println("MySQL JDBC 드라이버를 찾을 수 없습니다.");
            e.printStackTrace();
            return;
        }

        // 데이터베이스 연결 정보 설정
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "username";
        String password = "password";

        try {
            // 데이터베이스에 연결합니다.
            Connection conn = DriverManager.getConnection(url, username, password);

            // 연결이 성공하면 쿼리를 실행하고 결과를 처리합니다.
            Statement stmt = conn.createStatement();
            String sql = "SELECT * FROM employees";
            ResultSet rs = stmt.executeQuery(sql);

            // 결과 처리
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                double salary = rs.getDouble("salary");
                System.out.println("ID: " + id + ", Name: " + name + ", Salary: " + salary);
            }

            // 자원을 해제합니다.
            rs.close();
            stmt.close();
            conn.close();
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서는 MySQL 데이터베이스에 연결하여 employees 테이블에서 데이터를 조회하는 방법을 보여줍니다. Class.forName() 메서드로 JDBC 드라이버를 로드하고, DriverManager.getConnection() 메서드로 데이터베이스에 연결합니다.

SQL 실행 (Executing SQL)

Java에서는 Statement, PreparedStatement, CallableStatement 등을 사용하여 SQL 쿼리를 실행할 수 있습니다.

PreparedStatement 예제:

import java.sql.*;

public class PreparedStatementExample {
    public static void main(String[] args) {
        String url = "jdbc:mysql://localhost:3306/mydatabase";
        String username = "username";
        String password = "password";

        String query = "INSERT INTO employees (name, salary) VALUES (?, ?)";

        try (Connection conn = DriverManager.getConnection(url, username, password);
             PreparedStatement pstmt = conn.prepareStatement(query)) {

            pstmt.setString(1, "John Doe");
            pstmt.setDouble(2, 50000.0);
            int rowsInserted = pstmt.executeUpdate();

            if (rowsInserted > 0) {
                System.out.println("새로운 레코드가 추가되었습니다.");
            }

        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

위의 예제에서는 PreparedStatement를 사용하여 employees 테이블에 새로운 레코드를 추가하는 방법을 보여줍니다. setString()setDouble() 메서드를 사용하여 SQL 쿼리의 매개변수를 설정하고, executeUpdate() 메서드로 쿼리를 실행합니다.

JDBC를 이용하여 Java 애플리케이션에서 데이터베이스와 상호작용하는 방법을 이해하는 것은 중요합니다. 데이터베이스에 연결하고 쿼리를 실행하며 결과를 처리하는 기본적인 패턴을 숙지하여 실제 프로젝트에서 유용하게 활용할 수 있습니다.

Leave a Reply

Your email address will not be published. Required fields are marked *