본문 바로가기
Java

[Java] Java서버에서 JDBC연결하기

by teamnova 2021. 12. 5.
728x90

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 드라이버 설치는 아래 접은 글에서 확인 가능합니다.

 

이제 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