JAVA와 SQL: JDBC 활용

ya·2025년 3월 28일

DataBase와 SQL

목록 보기
6/12
post-thumbnail

📌 JDBC (Java Database Connectivity)

자바는 데이터베이스(DB)와 연결하여 데이터 입출력 작업을 수행할 수 있도록 JDBC(Java Database Connectivity) 라이브러리(java.sql 패키지)를 제공합니다.
JDBC는 DBMS(Database Management System)의 종류와 상관없이 사용할 수 있도록 설계된 클래스와 인터페이스로 구성되어 있습니다.


🚀 JDBC Driver

JDBC 드라이버는 DBMS와 자바 애플리케이션 간의 연결을 단님하는 인터페이스 구현체입니다.
각 DBMS마다 별도의 JDBC 드라이버를 제공하며, 이를 다운로드해서 사용해야 합니다.

🔹 DriverManager 클래스

  • JDBC 드라이버를 관리하며, DB와 연결(Connection 객체 생성) 역할을 수행합니다.

🛠️ 데이터베이스(DB) 연결

JDBC를 이용한 데이터베이스 연결을 위해 JDBC URL을 사용합니다.

🔗 JDBC URL 형식

jdbc:DBMS://IP주소:포트번호/스킨마명?serverTimezone=Asia/Seoul

📄 MySQL DB 연결 예제

jdbc:mysql://localhost:3306/ssgdb?serverTimezone=Asia/Seoul

✅ **DB 연결을

위한 필요 정보
1.
JDBC Driver : MySQL의 경우 com.mysql.cj.jdbc.Driver 드라이버 등록
2.
IP 주소 : DBMS가 설치된 컴퓨터의 IP (localhost)
3.
포트 번호 : MySQL의 기본 포트 3306
4.
사용자 계정 정보 : root / root
5.
데이터베이스(Schema) 이름** : ssgdb


🎯 매개변수화된 SQL 문 작성 (PreparedStatement 활용)

JDBC에서 SQL을 실행할 때 Statement 대시 PreparedStatement를 사용하면 SQL Injection 방지 및 성능 효율을 기대할 수 있습니다.

PreparedStatement 사용 방법

  1. SQL 문을 문자열 변수로 저장
  2. PreparedStatement 객체를 생성하며 SQL 문을 전달
  3. setXXX() 메서드를 사용하여 매개변수 값 설정
  4. executeUpdate()를 호출하여 SQL 실행 후 반환값 확인

📝 MySQL DB에 데이터 삽입 (INSERT) 예제 코드

import java.sql.*;

public class UserInsert {
    public static void main(String[] args) {
        Connection connection = null;
        
        try {
            // 1️⃣ MySQL JDBC 드라이버 로드
            Class.forName("com.mysql.cj.jdbc.Driver");
            System.out.println("\u2705 Driver loaded successfully!");

            // 2️⃣ DB 연결
            connection = DriverManager.getConnection(
                "jdbc:mysql://localhost:3306/ssgdb?serverTimezone=Asia/Seoul",
                "root", "root"
            );
            System.out.println("\u2705 Connection established: " + connection);

            // 3️⃣ SQL 문 작성
            String query = "INSERT INTO users(userid, username, userpassword, userage, useremail) VALUES(?,?,?,?,?);";

            // 4️⃣ PreparedStatement 객체 생성 및 SQL 연결
            PreparedStatement preparedStatement = connection.prepareStatement(query);
            preparedStatement.setString(1, "ssgcom3");
            preparedStatement.setString(2, "이민우");
            preparedStatement.setString(3, "password");
            preparedStatement.setInt(4, 33);
            preparedStatement.setString(5, "minooo@mail.com");

profile
ya로그

0개의 댓글