Programming/Database

데이터베이스 실습: JAVA를 통한 JDBC 프로그램

vita12321 2023. 10. 19. 08:01
728x90
반응형

이번 글에서는 '데이터베이스 실습: JAVA 통한 JDBC 프로그래밍' 대해 상세하게 알아보도록 하겠습니다. 이전 글에서는 JAVA 이용한 데이터베이스 연결 설정에 대해 배웠습니다. 이제 그중에서도 JDBC(Java Database Connectivity) 활용하여 데이터베이스와 상호작용하는 방법에 대해 더욱 깊게 살펴보겠습니다.


1. JAVA JDBC 중요성

 

JAVA 언어는 서비스나 애플리케이션 개발에서 널리 사용되며, 이러한 서비스나 애플리케이션은 주로 데이터베이스와의 상호작용을 필요로 합니다. 여기서 JDBC API JAVA 프로그램과 데이터베이스 사이의 인터페이스 역할을 하여, SQL 질의문을 전송하고 결과값을 받아오기 위한 여러 메소드들로 구성되어 있습니다.


2. 기본적인 JDBC 프로그래밍 방식

 

JDBC 프로그래밍은 일반적으로 다음과 같은 단계를 거칩니다:

 

1) 드라이버 로드

2) DB 연결

3) Statement 생성

4) SQL 질의문 실행

5) 결과 처리

6) 자원 해제

import java.sql.*;

 

public class Main {

    public static void main(String[] args) {

        Connection conn = null;

        Statement stmt = null;

        ResultSet rs = null;

 

        try {

            Class.forName("com.mysql.jdbc.Driver");

            conn = DriverManager.getConnection(

               "jdbc:mysql://localhost:3306/your_database", "username", "password");

 

            stmt = conn.createStatement();

            rs = stmt.executeQuery("SELECT * FROM your_table");

 

            while (rs.next()) {

                String data = rs.getString("column_name");

                System.out.println(data);

            }

 

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            if (rs != null) try { rs.close(); } catch(SQLException ex) {}

            if (stmt != null) try { stmt.close(); } catch(SQLException ex) {}

            if (conn != null) try { conn.close(); } catch(SQLException ex) {}

        }

    }

}

 

코드는 MySQL DBMS 접속하고, `your_table` 테이블에서 모든 레코드를 조회하여 `column_name` 컬럼의 값을 출력하는 예제입니다.


3. 다양한 종류의 SQL 질의문 활용 방식

 

SQL 질의문은 크게 DDL(Data Definition Language), DML(Data Manipulation Language), DCL(Data Control Language) 나눌 있습니다. DML 해당하는 SELECT, INSERT, UPDATE, DELETE 질의문은 가장 자주 사용되며, JDBC 프로그램에서도 이를 활용하여 데이터베이스와 상호작용합니다.


4. 오류처리와 주의사항

 

JDBC 프로그래밍 발생할 있는 오류들 일부는 다음과 같습니다:

 

  • 잘못된 SQL 질의문: SQL 질의문에 문법적인 오류가 있거나 존재하지 않는 테이블 또는 컬럼명을 참조하면 SQLException이 발생합니다.

  • 자원 해제 누락: DB 연결, Statement, ResultSet 등을 사용한 후에는 반드시 `close()` 메소드를 호출하여 해제해야 합니다. 그렇지 않으면 DBMS에 부담을 주거나 메모리 누수가 발생할 수 있습니다.

5. 데이터베이스 작업에서의 최선의 관행

 

  • 명확성 유지: 코드 내에서 어떤 DB와 어떻게 상호작용하는지 명확하게 알 수 있도록 관련 정보(예: URL, 사용자 이름, 비밀번호)를 정확하게 설정하는 것이 중요합니다.

  • 에러 처리: SQLException 등 예외가 발생할 경우 적절한 처리를 해야 합니다. 이런 상황에 대비하여 예외 처리 코드를 작성하는 것이 중요합니다.

6. 실습을 통한 이해

 

간단한 실습을 진행하여 JAVA JDBC 프로그래밍 방법을 익혀보겠습니다.

 

실제 JAVA 개발 환경에서 다음과 같은 코드를 작성하고 실행해 보세요:

 

import java.sql.*;

 

public class Main {

    public static void main(String[] args) {

        Connection conn = null;

        Statement stmt = null;

        ResultSet rs = null;

 

        try {

            Class.forName("com.mysql.jdbc.Driver");

            conn = DriverManager.getConnection(

               "jdbc:mysql://localhost:3306/your_database", "username", "password");

 

            stmt = conn.createStatement();

            rs = stmt.executeQuery("SELECT * FROM your_table");

 

            while (rs.next()) {

                String data = rs.getString("column_name");

                System.out.println(data);

            }

 

        } catch (Exception e) {

            e.printStackTrace();

        } finally {

            if (rs != null) try { rs.close(); } catch(SQLException ex) {}

            if (stmt != null) try { stmt.close(); } catch(SQLException ex) {}

            if (conn != null) try { conn.close(); } catch(SQLException ex) {}

        }

    }

}

 

코드를 실행하면, 지정한 데이터베이스에 정상적으로 연결되고, `your_table` 테이블에서 모든 레코드를 조회하여 `column_name` 컬럼의 값을 출력하는 것을 확인할 있습니다. 만약 SQL 질의문에 문제가 있다면 SQLException 발생하여 내용이 출력됩니다.


7. 결론

 

JAVA 이용한 JDBC 프로그래밍은 서비스나 애플리케이션 개발에서 중요한 단계입니다. 이를 통해 사용자의 요청을 데이터베이스로 전달하고, 필요한 정보를 데이터베이스에서 검색하여 사용자에게 제공할 있습니다.

 

JDBC 프로그래밍 주의사항은 잘못된 SQL 질의문 또는 자원 해제 누락 등으로 인해서 원하지 않는 결과나 오류가 발생할 있다는 점입니다. 따라서 SQL 질의문 작성과 자원 해제 가능한 명확하게 코드를 작성하여 어떤 DB 어떻게 상호작용하는지 명확히 있도록 하는 것이 중요합니다.

 

JAVA JDBC 프로그래밍은 복잡해 보일 있지만, 익혀두면 다양한 프로젝트에서 재사용할 있는 매우 유용한 기술입니다. 이러한 기능들은 사용자의 요구사항에 따라서 유연하게 대응할 있도록 도와주며, 효율적인 데이터 관리를 가능하게 합니다."

 

다음 글에서는 실제로 SQL 질의문을 활용하여 데이터베이스에서 필요한 정보를 검색하고 수정하는 방법에 대해 자세히 알아보겠습니다! 그러기 위해서는 우선 SQL 대한 기본적인 이해가 필요합니다. SQL 데이터베이스에서 데이터를 검색, 삽입, 수정, 삭제하는 사용되는 언어입니다. 이어서 우리는 JDBC API 사용하여 JAVA에서 SQL 질의문을 실행하는 방법을 배웁니다.

 

또한, 결과 처리 방법에 대해서도 배웁니다. `ResultSet` 객체를 통해 SQL 질의문의 결과를 받아올 있습니다. `ResultSet` 객체는 데이터베이스의 테이블과 같은 형태로 결과를 저장하며, 여러 개의 레코드와 컬럼으로 구성되어 있습니다. `next()` 메소드로 다음 레코드로 이동하고, getXXX() 메소드(: `getString()`, `getInt()`) 컬럼의 값을 가져올 있습니다.

 

마지막으로 자원 해제에 대해서도 설명합니다. DB 연결, Statement, ResultSet 등은 시스템 자원을 차지하기 때문에 사용 후에는 반드시 해제해야 합니다. 그렇지 않으면 시스템 성능 저하나 메모리 누수 등의 문제가 발생할 있습니다.

728x90
반응형

 

728x90
반응형