Notice
Recent Posts
Recent Comments
Link
«   2026/04   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30
Archives
Today
Total
관리 메뉴

memo6759 님의 블로그

2025-09-30(JDBC) 본문

HDC 학습일지

2025-09-30(JDBC)

heewon09 2025. 10. 1. 09:35

JDBC(Java Database Connectivity) 정

  • Java와 DBMS를 연결하기 위한 API
  • 자바 프로그램에서 SQL문을 실행할 수 있도록 제공되는 기술

 

MySQL 접속을 위한 사전작업

  1. 드라이버 다운로드
    • 사용하는 DBMS(Oracle, MySQL 등)의 공식 홈페이지에서 다운로드
  2. 드라이버 등록 (Eclipse/IntelliJ 기준)
    • 프로젝트 선택 → 우클릭 → Build Path → Configure Build Path
    • Libraries 탭Add External JARs... → 드라이버 파일 추가

 

JDBC 프로그래밍 단계

1. 드라이버 로딩

  • JVM 메모리에 DBMS의 드라이버 클래스를 로딩
  • Class.forName("드라이버 클래스명") 사용
// MySQL
Class.forName("com.mysql.cj.jdbc.Driver");

// Oracle
Class.forName("oracle.jdbc.driver.OracleDriver");

2. DBMS 연결

  • DriverManager.getConnection() 메소드 사용
Connection con = DriverManager.getConnection(url, user, password);
  • 매개변수 설명
    • url : DB 접속 정보 (DBMS마다 형식이 다름)
    • user / password : 계정 정보
  • 리턴 : Connection 객체 (DB 연결 정보 저장)

접속 URL 예시

MySQL

jdbc:mysql://192.168.14.19:3306/mytestdb?serverTimezone=UTC

Oracle

jdbc:oracle:thin:@192.168.14.79:1521:xe

SQL 실행 객체 생성 (CRUD)

  • SQL 실행은 Statement, PreparedStatement, CallableStatement로 가능

객체 종류

  • Statement : 정적 SQL 실행 (보안에 취약, SQL Injection 위험)
  • PreparedStatement : 동적 SQL 실행 (보안 ↑, 성능 ↑, 권장 방식)
  • CallableStatement : 프로시저/함수 호출

예시:

// Statement
Statement stmt = con.createStatement();

// PreparedStatement
PreparedStatement pstmt = con.prepareStatement("SELECT * FROM member WHERE id=? AND pass=?");

4. SQL문 실행

Statement

// 데이터 변경 (insert, update, delete)
int result = stmt.executeUpdate("INSERT INTO member VALUES(...)");

// 데이터 조회 (select)
ResultSet rs = stmt.executeQuery("SELECT * FROM member");

PreparedStatement

// ?에 값 세팅
pstmt.setString(1, "bts1");
pstmt.setString(2, "1234");

// 실행
ResultSet rs = pstmt.executeQuery();   // select
int result = pstmt.executeUpdate();    // insert, update, delete

결과 처리

  • insert / update / delete : 결과는 반영된 레코드 수(int)
  • select : ResultSet 객체 반환 → 반복문으로 데이터 추출
while (rs.next()) {
    String id = rs.getString("id");
    int point = rs.getInt("point");
    Date hiredate = rs.getDate("hiredate");
    System.out.println(id + " / " + point + " / " + hiredate);
}

자원 반납

모든 작업이 끝나면 반드시 자원 닫기 필요

rs.close();
pstmt.close();
con.close();
  1. 드라이버 로딩 → Class.forName()
  2. DB 연결 → DriverManager.getConnection()
  3. SQL 실행 객체 생성 → Statement / PreparedStatement
  4. SQL 실행 → executeUpdate / executeQuery
  5. 결과 처리 → ResultSet
  6. 자원 해제 → close()