본문 바로가기

Java & Kotlin

JDBC(Java Database Connectivity)

JDBC란?

 

자바 프로그램에서 데이터베이스를  표준화된 방법으로 접속할 수 있도록 만든 API 규격.

즉, 자바에서 DB 작업을 하기 위한 API입니다.

  • 개발자는 DB 종류에 무관하게 표준화된 API를 이용해 프로그램 개발 가능
  • DB 종류 변경시 프로그램 수정 최소화

 

JDBC 구조

JDBC 드라이버란?

MySQL 뿐만 아니라 대부분의 DB에서 해당 DB를 Java에서 연결해서 사용할 수 있도록 제공하는 라이브러리

각 DBMS 제조업체 홈페이지를 통해 다운로드 가능

 

JDBC 프로그래밍 흐름

1. JDBC 드라이버 로드

2. 연결 생성하기

3. 문장 실행하기

4. 결과집합 사용하기

 

 

1. JDBC 드라이버 로드

 

JDBC 드라이버를 로드하기 위해서는 먼저 JDBC 드라이버를 설치해주어야 합니다.

JDBC 드라이버 설치는 아래 접은 글에서 확인 가능합니다.

더보기

게시글에서는 MySQL기준으로 설명하겠습니다.

 

https://dev.mysql.com/downloads/connector/j/#downloads

 

MySQL :: Download Connector/J

MySQL Connector/J 8.0 is highly recommended for use with MySQL Server 8.0, 5.7 and 5.6. Please upgrade to MySQL Connector/J 8.0.

dev.mysql.com

위 링크에서 JDBC 드라이버를 다운로드 해주면 됩니다.

 

다운로드가 완료되면 다운로드 된 mysql-connector-java-버전-bin.jar 파일을 볼 수 있습니다.

이제 다운로드된 jar파일을 프로젝트에 추가해줍니다.

 

JAR(Java Archive) 파일이란?

여러개의 자바 클래스 파일과, 클래스들이 이용하는 관련 리소스 및 메타데이터를 하나의 파일로 모아서 자바 플랫폼에 응용 소프트웨어나 라이브러리를 배포하기 위한 패키지 파일 포맷이다.

 

 

다음은 외부 라이브러리를 Intellij 프로젝트에 추가하는 방법입니다.

1. File -> Project Structure

 

2. Modules -> 프로젝트 -> Dependecies -> + 클릭 -> JARS or directories

 

3. 다운로드한 mysql-connector-java-버전-bin.jar 파일 설치 경로로 가서 라이브러리 추가하기

 

4. 라이브러리 체크 후 OK 클릭

 

4. 이제 프로젝트의 External Libraries에서 추가된 mysql-connector-java-버전-bin.jar 파일을 확인 할 수 있습니다.

 

이제 JDBC 드라이버 로딩을 해보겠습니다.

 

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

 

Class.forName() 이라는 메서드를 통해서 External Libraries에서 com.mysql.cj.jdbc 경로에 있는 Driver 클래스를 생성한다. 

 

 

DriverManager.getConnection("url","user","password");

 

DriverManager.getConnection() 메서드를 사용해서 Connection 객체 반환

 

url : jdbc:mysql://IP주소[:포트번호]/스키마명

user : 데이터베이스 user 이름

password : 데이터베이스 password

 

 

Connection.createStatement()

 

Connection.createStatement() 메서드로 Statement 객체 반환

 

Connection conn = DriverManager.getConnection(jdbcDriver,dbUser,dbPass);
Statment stmt = conn.createStatement();

 

이제 반환 받은 Statement 객체가 제공하는 메서드로 쿼리를 실행 할 수 있습니다.

 

int insertedCount = stmt.executeUpdate("insert ...")

 

INSERT, UPDATE, DELETE : int executeUpdate(String query)

 

ResultSet rs = stmt.executeQuery("select * from ...")

 

SELECT : ResultSet executeQuery(String query)

 

이제 자바파일을 실행 시켜서 DB에 접속하고 결과를 콘솔로 표시해 보겠습니다.

DB에 연결된 것을 확인 할 수 있고, 이제 필요한 용도에 맞게 활용 하시면 됩니다.

 

 

자바 전체 코드

import java.sql.*;

public class Test {
    public static void main(String[] args) {

        Connection connection = null;
        PreparedStatement pstmt = null;
        Statement stmt = null;
        ResultSet rs = null;

        try {
            Class.forName("com.mysql.cj.jdbc.Driver");

            DriverManager.getConnection("url","user","password");
            
            System.out.println("DB연결이 완료되었습니다.");

            stmt = connection.createStatement();
            int insertCount = stmt.executeUpdate("INSERT ....");

            rs = stmt.executeQuery("SELECT ...");

        } catch (SQLException | ClassNotFoundException throwables) {
            throwables.printStackTrace();
        }
    }
}

 

스틱코드를 활용하면 더욱 쉽게 코드를 불러올 수 있습니다.

https://stickode.com/detail.html?no=2622 

 

스틱코드

 

stickode.com