MapleStory Cookie With Halo

☕ JAVA/☕ 개발환경

[JAVA]JDBC란? 사용법까지 간략 정리

뉴이 NUEY 2025. 1. 1. 02:06
반응형

 

JDBC란?
Java DataBase Connectivity

 

  • DB에 접속할 수 있도록하는 자바API.

  • 각 데이터베이스마다 JDBC를 연결해주는 Driver가 따로 있기 때문에 각 DB에 맞는 JDBC Driver를 다운 받아 적용한다. (example. ojabc.jar)

※ 현재는 잘 쓰이지 않지만, 워낙 많이 사용되었기에 아직도 남아있는 JDBC코드가 많습니다.
기본기라 생각되어 간단히 정리해 봅니다.
💡 시작 전 DB driver를 lib폴더에 담아주어야 합니다.

2025.01.01 - [💾 Data Base/⭕ Oracle] - [Oracle]ojdbc8.jar 위치. (+프로젝트 내 폴더 위치)

 


 

간단 실습

 

 

  • Class.forName("oracle.jdbc.driver.OracleDriver");
    → 드라이버 연결. 그대로 적으시면 됩니다.

  • String url = "jdbc:oracle:thin:@localhost:1521:orcl";
    → 그대로 적으시면 됩니다.

  • String userName, password
    → 오라클 설치 시 만든 비밀번호와 아이디(초기아이디 system) 적으시면 됩니다.

  • Connection con = DriverManager.getConnection(url, userName, password);
    → 계정 연결.
  • sql은 String으로 적으면 됩니다.
    보통 저렇게 줄바꿈을 하면서 적어줍니다.

  • Statement stmt = con.createStatement();
    → Satement : SELECT문 사용시, DB에 쿼리를 보내는 용 객체.

  • ResultSet rs = stmt.executeQuery(sql);
    → ResultSet : SELECT문 사용시, 쿼리 결과를 저장하는 객체. 결과 테이블.
    → executeQuery : 쿼리실행.

    💡그리고 rs.getInt(), rs.getString() 등은 데이터 타입에 맞게 가져오시면 됩니다.


  • while(rs.next()) : 테이블 형태로 오기 때문에 while()문을 사용해 값을 추출합니다.

  • 사용 후 모두 종료해줍니다.
    rs.close();
    stmt.close();
    con.close();

 

💡 꼭 try/catch문을 이용해
} catch (ClassNotFoundException e) { 를 잡아주세요.

 

원본 데이터. 오라클 기본 데이터 중 하나다.

 


 

전체코드

더보기
import java.sql.*;

public class App {

    public static void main(String[] args) throws Exception {

        try {
            Class.forName("oracle.jdbc.driver.OracleDriver");

            String url = "jdbc:oracle:thin:@localhost:1521:orcl";
            String userName = "";
            String password = "";
            
            Connection con = DriverManager.getConnection(url, userName, password);

            String sql ="SELECT * " + 
                        "FROM HR.JOBS";

            Statement stmt = con.createStatement();

            ResultSet rs = stmt.executeQuery(sql);

            while(rs.next()) {
                System.out.println(rs.getString(1)+" "+rs.getString(2));
            }
            rs.close();
            stmt.close();
            con.close();
            
            System.out.println("드라이버 연결 성공");
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
            System.out.println(e.getMessage());
        }
    }
}

 


 

INSERT문 사용시

 

String sql = " INSERT INTO DEPT "
				   + " VALUES (?, ?, ?) ";

PreparedStatement pstm = null;

pstm = con.prepareStatement(sql);
pstm.setInt(1, deptno);
pstm.setString(2, dname);
pstm.setString(3, loc);

int res = pstm.executeUpdate();

if (res > 0) {
		System.out.println("입력 성공");

 

  • INSERT / DELETE / UPDATE 는 몇 개가 수정되었는 지 갯수만 반환되기에 간단합니다.

  • 다만 사용법이 위와 같이 다를 뿐.

 

스프링 부트를 활용한 예제 이지만 JDBC코드는 동일하기 때문에
insert / select/ update는 아래 포스트의 예제를 추천드립니다. 

2025.01.08 - [🍃 Spring/🍃 Spring Boot] - [SpringBoot]DB접근기술-순수JDBC

 

반응형