JDBC (Java Database Connectivity)
자바를 이용한 데이터베이스 접속과 SQL 문장의 실행, 그리고 실행 결과로 얻어진 데이터의 핸들링을 제공하는 방법과 절차에 관한 규약
- 자바 프로그램 내에서 SQL문을 실행하기 위한 자바 API
- JAVA는 표준 인터페이스인 JDBC API를 제공
- 데이터베이스 벤더, 또는 기타 써드파티에서는 JDBC 인터페이스를 구현한 드라이버(driver)를 제공
- SQL과 프로그래밍 언어의 통합 접근 중 한 형태
JDBC 환경 구성
- JDK 설치
- JDBC 드라이버 설치
- Maven에 다음과 같은 의존성을 추가 혹은 MySQL사이트에서 다운로드
<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.25</version> </dependency>
- Maven에 다음과 같은 의존성을 추가 혹은 MySQL사이트에서 다운로드
JDBC를 이용한 프로그래밍 방법
- import java.sql.*;
- 드라이버를 로드한다.
- 써드 파티가 제공해주는 드라이버
- Connection 객체(써드 파티에서 인터페이스를 구현한 객체)를 생성한다.
- 써드 파티가 제공해주는 라이브러리 활용
- DB 접속
- Statement 객체(인터페이스를 구현한 객체, 쿼리문을 담은 객체)를 생성 및 질의 수행
- SQL문에 결과물이 있다면 ResultSet 객체를 생성한다.
- 실제 결과는 DBMS에 있고, 자바에서는 결과 셋을 가리키는 레퍼런스를 객체로 받는다.
- 모든 객체를 닫는다.
- DB에 접속할 수 있는 클라이언트의 수가 정해져 있기 때문
// 1. IMPORT
import java.sql.*;
// 2. 드라이버 로드 (메모리에 해당 객체가 로드된다)
Class.forName( "com.mysql.cj.jdbc.Driver" );
// 3. Connection 얻기
String dburl = "jdbc:mysql://localhost/dbName";
Connection con = DriverManager.getConnection ( dburl, ID, PWD );
//오라클 소스코드 예제
public static Connection getConnection() throws Exception{
String url = "jdbc:oracle:thin:@117.16.46.111:1521:xe";
String user = "userName";
String password = "password";
Connection conn = null;
Class.forName("oracle.jdbc.driver.OracleDriver");
conn = DriverManager.getConnection(url, user, password);
return conn;
}
// 4. Statement 생성 (쿼리문 이용)
Statement stmt = con.createStatement();
// 5. 질의 수행
ResultSet rs = stmt.executeQuery("select no from user" );
/* 참고
stmt.execute(“query”); //for any SQL
stmt.executeQuery(“query”); //for SELECT
stmt.executeUpdate(“query”); //for INSERT, UPDATE, DELETE
*/
// 6. ResultSet으로 결과 받기
ResultSet rs = stmt.executeQuery( "select no from user" );
while ( rs.next() )
System.out.println( rs.getInt( "no") );
// 7. Close (생성과는 역순으로 닫는다)
rs.close();
stmt.close();
con.close();
JDBC 클래스의 생성 관계
출처) 부스트코스 풀스택 강의 https://www.boostcourse.org/web316/lecture/16734?isDesc=false