(Java) JDBC란?

2022. 2. 20. 20:32Java

반응형

🏴󠁩󠁤󠁪󠁷󠁿JDBC의 정의


JDBC(Java Database Connectivity)는 뭘까?

이름만 보면 그 쓰임을 대충 짐작할 수 있다.

 

자바와 데이터에이스 간을 연결하는 중간자 역할을 하는 친구 정도? 로 받아들이면서 시작하자.

 

  • 자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약
  • 자바 프로그램내에서 SQL문을 실행하기 위한 자바 API
  • SQL과 프로그래밍 언어의 통합 접근 중 한 형태

기존에 DB를 공부했다면 알 것이다.

데이터를 추가하거나 삭제, 수정할때 마다 DB에 쿼리문을 날려서 실행해야한다는 것을.

 

그런데 웹 어플리케이션의 경우 우리가 직접 모든 요청에 대한 쿼리문을 DB에 날릴 수 없다.(가능하다면 이런게 필요 없겠지)

 

그렇기 때문에 우리는 이 DB에 접근을 쉽게 하기 위해서 JDBC를 사용한다!

 

Java는 이미 표준 인터페이스인 JDBC API를 제공하고 있기 때문에, 어떤 DB이든 같은 방식으로 DB를 핸들링 할 수 있다.

 

 

🏴󠁩󠁤󠁪󠁷󠁿JDBC의 사용


JDBC를 어떻게 사용할까? 기본적인 JDBC 동작 순서에 대해서 알아보자.

 

import java.sql.*;

기본적으로 사용할 리포지토리에 JDBC를 임포트 해줘야한다.

 

Class.forName("com.mysql.jdbc.Driver");

드라이버를 로드한 후 

 

 

Connection 객체를 생성한다.

 

public Connection getConnection() throws Exception{
		String ID = "root";
        String password = "1234567890";
        Connection conn = null;
        
	String url = "jdbc:mysql://localhost/dbName";
        
        Class.forName("oracle.jdbc.driver.OracleDriver");
        
        Connection con = DriverManager.getConnection(url, ID, password);
        return conn;
	}

 

이렇게 말이다.

 

// create

Statement stmt = con.createStatement();

// select
ResultSet rs = stmt.excuetQuery("select no from user");

// Delete
ResultSet rs = stmt.excuteDelete("query");

이후 Statement 객체를 생성해서 SQL질의를 수행한다.

 

이후 SQL문이 결과를 반환하는 SQL문이라면 이 결과를 ResultSet 객체에 담아서 전달한다.

 

이후 모든 객체를 닫는다!!(중요)

 

이 과정은 모두 아래와 같다.

 

 

🏴󠁩󠁤󠁪󠁷󠁿마치며


jdbc는 이렇게 구조를 명확하게 알 수 있다는 점에서 공부할 가치가 있다.

jdbc는 단순히 jdbc 자체로 사용되는 것이 아니라, JPA, MyBatis와의 연계를 생각해야하기 떄문이다.

(물론 위의 툴들을 활용하면 이런 것들을 생각할 필요가 없긴 하다.)

 

알고 쓰는 것과 모르고 쓰는 것은 차이가 크기 때문에...

 

반응형