티스토리 뷰

Web 개발/JAVA

[JDBC] JDBC란?

happii 2022. 3. 23. 00:50

JDBC 

- Java Database Connectivity

- 자바에서 DB 프로그래밍을 하기 위해 사용되는 API  => 데이터베이스 종류에 상관없다.

 

 

DriverManger : JVM에서 JDBC 전체를 관리하는 클래스 Driver 등록, Connection 연결 작업 등

Driver : DB를 만드는 Vendor(Oracle, MS-SQL, MySQL 등)를 implements 하여

신들의 DB를 연결할 수 있는 class를 만드는 인터페이스

Connection : DB와 연결성을 갖는 인터페이스

Statement : SQL문을 실행하는 인터페이스

ResultSet : 조회된 결과 데이터를 갖는 인터페이스

 


1. 제품군 선택 : Driver loading

   MySQL의 JDBC Driver Class를 로딩한다.

 

˙Class.forName()을 이용해서 Driver Class를 로딩하면 객체가 생성되고, DriverManager에 등록된다.

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

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

 

˙Driver 클래스를 찾지 못할 경우, ClassNotFoundException 예외가 발생한다.

 

2. DB 연결 객체 생성 : Connection 

     필요요소 - DB서버의 주소, 포트번호, 연결계정

 

˙ DriverManager.getConnection(String jdbcURL, String user, String password)

   : DriverManager를 이용해서 Connection 객체 생성.

  - jdbcURL -> "jdbc:Driver 종류://IP:포트번호/DB명"   ex) "jdbc:mysql://localhost:3306/test_db"

  - user -> MySQL 아이디

  - password -> MySQL 비밀번호

   ex) con = DriverManager.getConnection(url, user, pw)

 

3. 실행 객체 생성 : Statement

     관련요소 - Sql문 작성, Sql문 실행요청

 

˙ PreparedStatement - 객체 생성, 객체 생성시 SQL 문장 저장

    - SQL 문을 데이터베이스에 보내기위한 객체이다.

    - pstmt = con.preparedStatement("SQL 문장")

 

4. pstmt.set<데이터타입>(? 순서, 값)

- ? 매개변수에 값을 지정한다.

- ex) pstmt.setString(1, 값), pstmt.setInt(2, 값)

 

 

5. SQL 문장을 실행하고 결과 리턴

˙ Connection.createStatement() : Statement가 제공하는 메서드로 쿼리 실행

   - int executreUpdate(String query) : INSERT, UPDATE, DELETE 의 경우

   - ResultSet executeQuery(String query) : SELECT 의 경우

 

 

6. 결과 객체 생성 : ResultSet

     관련요소 - 행단위 데이터얻기, 열 데이터 얻기

     데이터베이스 조회 결과집합에 대한 표준이다.

 

- next() : 데이터 조회 여부 확인. DB의 table 안의 row 한 줄을 불러온다.

- getString(), getInt() : 한 행의 특정 Column 값을 가져온다.

 

 

7. close 

   Connection, Statement, ResultSet에 대해 close 해준다.

최근에 올라온 글
Total
Today
Yesterday