JDBC(Java DataBase Connectivity)?

hzbbo·2024년 1월 2일

JAVA

목록 보기
1/1
post-thumbnail

JDBC는 JAVA로 데이터베이스 프로그래밍을 하기 위한 라이브러리

1. JDBC란?

Java 기반 애플리케이션의 데이터를 데이터베이스에 저장 및 업데이트하거나 저장된 데이터를 Java에서 사용할 수 있도록 하는 Java API이다.

2. JDBC 클래스

java.sql, javax.sql을 사용

  • Driver : JDBC Driver 정보를 제공, DBMS와의 연결을 관리하는 객체를 리턴

  • Connection : DriverManager를 통해 데이터베이스와 연결되는 세션(Session)인 Connection 객체를 생성

  • Statement : 작성된 SQL 쿼리문을 실행하기 위한 객체로 정적 SQL 쿼리 문자열을 입력으로 가짐

    • executeQuery() : SELECT 문을 실행

    • executeUpdate() : INSERT, UPDATE, DELETE 등 DML, DDL 명령문을 실행

    • executeBatch() : 여러 개의 SQL을 실행할 때 사용 (SELECT, INSERT, UPDATE, DELETE 등 모든 SQL 명령문이 실행 가능)

  • ResultSet : 실행된 SQL 쿼리문에 대한 결과 Data Set

3. Connection Pool

Connection 객체를 미리 생성하여 보관하고 애플리케이션이 필요할 때 꺼내서 사용할 수 있도록 관리해 주는 것이 Connection Pool

매번 Connection을 생성하는 것은 오버헤드가 크다. 따라서 DataSource를 통해 Connection Pool을 활용할 수 있다.

4. JDBC 사용하여 데이터베이스 연결하는 소스 코드

	String sql = "select * from usertb where id = ?";
	
	Connection conn = null;
	PreparedStatement pstmt= null;
	ResultSet rs = null;
	
	InitialContext ic = null;
	DataSource ds = null;
  • SQL 쿼리를 정의하고, 데이터베이스 연결 및 쿼리 수행에 필요한 변수들을 초기화한다.
try {
    ic = new InitialContext();
    ds = (DataSource) ic.lookup("jdbc/testDB");
    conn = ds.getConnection();
  • InitialContext를 사용하여 JNDI(Java Naming and Directory Interface)에서 "jdbc/testDB"라는 이름의 데이터 소스(DataSource)를 찾는다.
  • 찾은 데이터 소스를 사용하여 데이터베이스 연결(Connection)을 가져온다.
	pstmt = conn.prepareStatement(sql);
	pstmt.setString(1, "1");
	rs = pstmt.executeQuery();
    while (rs.next()) {
    	String userName = rs.getString("id");
    	System.out.println("User Name : " + userName);
	}
  • PreparedStatement를 사용하여 SQL 쿼리를 실행하고, 결과를 ResultSet 객체에 저장한다.
} catch(Exception e) {
	e.printStackTrace();
} finally {
	try {
		if (rs != null) rs.close();
        if (pstmt != null) pstmt.close();
        if (conn != null) conn.close();
     } catch (Exception e) {
     	e.printStackTrace();
     }
 }
  • 사용한 객체를 반납한다. (리소스들은 꼭 close() 해줘야 자원 낭비가 없음)

0개의 댓글