[java] Apache Derby를 사용하여 데이터베이스에서 구조화된 쿼리 언어를 활용하는 방법은 무엇인가요?

Apache Derby는 경량의 오픈 소스 데이터베이스 관리 시스템(DBMS)입니다. 다른 DBMS와 마찬가지로 Derby는 구조화된 쿼리 언어(SQL)를 지원하여 데이터베이스에서 데이터를 조작하고 조회할 수 있습니다.

먼저, 데이터베이스에 연결하기 위해 Derby를 설정해야 합니다. Derby를 다운로드하여 설치한 후, 클래스 패스에 Derby JAR 파일을 추가해야 합니다. 다음은 연결을 위한 Java 코드입니다:

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

public class DatabaseExample {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            // 데이터베이스 연결
            conn = DriverManager.getConnection("jdbc:derby:/경로/데이터베이스명");
            System.out.println("데이터베이스 연결 성공!");
            
            // 쿼리 실행 및 결과 처리
            // ...
            
        } catch (SQLException e) {
            System.out.println("데이터베이스 연결 실패: " + e.getMessage());
        } finally {
            try {
                // 연결 종료
                if (conn != null) {
                    conn.close();
                }
            } catch (SQLException e) {
                System.out.println("연결 종료 실패: " + e.getMessage());
            }
        }
    }
}

위 코드에서 /경로/데이터베이스명 부분에는 Derby 데이터베이스 파일의 경로와 이름을 입력해야 합니다.

데이터베이스에 연결한 후, 쿼리를 실행하고 결과를 처리할 수 있습니다. 여기에는 SELECT, INSERT, UPDATE, DELETE 등의 다양한 SQL 문을 사용할 수 있습니다. 예를 들어, 다음은 customers 테이블에서 모든 레코드를 조회하는 코드입니다:

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

public class DatabaseExample {
    public static void main(String[] args) {
        Connection conn = null;
        try {
            conn = DriverManager.getConnection("jdbc:derby:/경로/데이터베이스명");
            
            Statement stmt = conn.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM customers");
            
            while (rs.next()) {
                int id = rs.getInt("id");
                String name = rs.getString("name");
                System.out.println("ID: " + id + ", Name: " + name);
            }
            
            rs.close();
            stmt.close();
            
        } catch (SQLException e) {
            System.out.println("쿼리 실행 실패: " + e.getMessage());
        } finally {
            // ...
        }
    }
}

위 코드에서 SELECT * FROM customerscustomers 테이블의 모든 열을 조회하는 쿼리입니다. 결과는 ResultSet 객체에 저장되고, rs.next()를 호출하여 한 줄씩 읽을 수 있습니다.

Apache Derby를 통해 데이터베이스에서 구조화된 쿼리 언어를 사용하는 방법을 알아보았습니다. 더 자세한 내용은 Apache Derby 공식 사이트에서 확인할 수 있습니다.