목차
- JDBC란?
- JDBC 사용 객체
- JDBC를 활용해 질의 결과 출력
JDBC
- JDBC(Java DataBase Connectivity)
- Java에서 DB에 접근할 수 있도록 해주는 Java API
- Java에서 DB와 연결하기 위한 인터페이스 , 클래스를 제공 (java.sql 패키지)
- ojdbc : 오라클에서 제공하며, Java와 Oracle DBMS를 연결하기 위한 라이브러리 (클래스 , 코드)
JDBC 사용 객체
* DriverManager
- 데이터 원본에 JDBC 드라이버를 통해 Connection을 만드는 역할
- Class.forName() 메서드로 생성되고 반드시 예외처리 해야함.
- 직접 객체 생성이 불가능하고 getConnection() 메서드를 이용해서 객체 생성
* Connection
- 특정 데이터 원본과 연결된 커넥션을 나타낸다.
- createStatement() 메서드를 호출하여 Statement 객체를 생성함.
- SQL 문장을 실행시키기 전에 우선 Connection 객체가 있어야 한다.
* Statement
- Connection 객체를 이용해 리턴되는 객체에 의해서 구현되는 메서드 집합 정의.. (말이 조금 복잡함..)
- 생성된 Statement 객체로 질의문장(SQL문)을 String 객체에 담아 인자로 전달하고
executeQuery() 메서드를 호출하여 SQL 질의를 수행한다.
* ResultSet
- SELECT문을 사용한 질의 성공 시 Result Set 반환
- SQL 질의에 의해 생성된 테이블을 담고있고, 커서로 특정 행에 대한 참조를 조작한다.
SQL 질의 결과를 출력하는 과정
* 예시 코드 / 밑에는 순서 설명
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JDBCPractice {
public static void main(String[] args) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "AA";
String password = "AA";
Class.forName(driver);
conn = DriverManager.getConnection(url , user , password);
stmt = conn.createStatement();
String sql = "SELECT EMP_ID , EMP_NAME FROM EMPLOYEE";
rs = stmt.executeQuery(sql);
while(rs.next()) {
String empNo = rs.getString("EMP_ID");
String empName = rs.getString("EMP_NAME");
System.out.printf("사번 : %s / 이름 : %s \n", empNo, empName);
}
}catch(Exception e) {
e.printStackTrace();
}finally { // 자원 반환
try {
if(rs != null) rs.close();
if(stmt != null) stmt.close();
if(conn != null) conn.close();
}catch(SQLException e) {
e.printStackTrace();
}
} // try - catch - finally END
}
}
- JDBC 객체 참조 변수를 선언한다.
- DriverManager에 해당 DBMS의 Driver를 등록한다.
- Driver로부터 Connection 객체를 얻어온다.
- SQL 결과를 반환 받을 Statement 객체를 생성한다.
- DB에 전달할 SQL 구문을 작성한다.
- Statement 객체에 SQL(SELECT)를 담아 DB에서 수행한 결과(Result Set)를 받아와 ResultSet 변수에 저장한다.
- 조회 결과가 있는 경우 커서를 통해 순서대로 행에 접근한다.
- .get[Type]("컬럼명") 메서드를 이용하여 컬럼 값을 가져온다. ( [Type]의 자료형은 Java기준 )
- 사용했던 JDBC 객체의 자원을 반환한다. ( close() 메서드 이용 )
* 4번과 5번 순서는 누가 먼저와도 상관없을듯?? 하다.
* 9번
- 자원을 반환할 경우 사용했던 객체의 역순으로 close한다.
- close() 전에 null 여부를 검사한다.
'Study > 수업 내용 정리' 카테고리의 다른 글
JDBC3 < 2021-10-14 > (0) | 2021.10.14 |
---|---|
JDBC2 < 2021-10-11 > (0) | 2021.10.11 |
Collection - Set / Map < 2021-10-05 > (0) | 2021.10.05 |
Array / Collection - List < 2021-10-04 > (0) | 2021.10.04 |
PROCEDURE(프로시저) / FUNCTION(함수) / CURSOR(커서) / TRIGGER (트리거) < 2021-09-29 > (0) | 2021.09.29 |