// education

JDBC 데이터베이스 연동 및 SQL CRUD 실행

자바 애플리케이션과 **관계형 데이터베이스(MySQL, Oracle, SQLite)**를 연동하여 데이터를 영구 저장하고 조작하는 JDBC(Java Database Connectivity) 기술을 다룹니다.


1. JDBC 연동 용어 사전 (Glossary)


2. JDBC DB 연결 및 SQL CRUD 실행 예제

import java.sql.*;

public class JdbcCrudMain {
    private static final String URL = "jdbc:sqlite:student.db"; // DB URL

    public static void main(String[] args) {
        String insertSql = "INSERT INTO students (name, score) VALUES (?, ?)";
        String selectSql = "SELECT * FROM students";

        try (Connection conn = DriverManager.getConnection(URL)) {
            System.out.println("데이터베이스 연결 성공!");

            // 1. 데이터 추가 (Create)
            try (PreparedStatement pstmt = conn.prepareStatement(insertSql)) {
                pstmt.setString(1, "홍길동");
                pstmt.setInt(2, 95);
                pstmt.executeUpdate();
                System.out.println("학생 데이터 등록 성공.");
            }

            // 2. 데이터 조회 (Read)
            try (PreparedStatement pstmt = conn.prepareStatement(selectSql);
                 ResultSet rs = pstmt.executeQuery()) {
                while (rs.next()) {
                    System.out.println("ID: " + rs.getInt("id") + 
                                       " | 이름: " + rs.getString("name") + 
                                       " | 점수: " + rs.getInt("score"));
                }
            }
        } catch (SQLException e) {
            System.err.println("DB 작업 에러: " + e.getMessage());
        }
    }
}

3. 자주 묻는 질문 (Q&A)

Q. executeUpdate()executeQuery() 메소드의 차이는? A. executeUpdate()INSERT, UPDATE, DELETE 처럼 DB 내용을 변경하는 쿼리에 쓰이며 영향받은 행(Row)의 개수를 반환합니다. 반면 executeQuery()SELECT 쿼리에 쓰이며 ResultSet 결과 객체를 반환합니다.

← 이전자바 디자인 패턴(Singleton, Factory, DAO)과 실전 종합 프로젝트 다음 →