JDBC

니니·2021년 12월 1일

JDBC

목록 보기
1/2

DriverManager

데이터 원본에 JDBC드라이버를 통하여 커넥션을 만드는 역할
Class.forName() 메소드를 통해 생성되며 반드시 예외처리를 해야 함
Connection 객체 생성 시에도 직접 객체 생성이 불가능하고
DriverManager 클래스의 getConnection() 메소드를 사용하여 객체 생성

Connection

특정 데이터 원본과 연결된 커넥션을 나타내며 Statement객체를
생성할 때도 Connection객체를 사용하여 createStatement() 메소드를
호출하여 생성
SQL문장을 실행시키기 전에 우선 Connection 객체가 있어야 함

Statement

Connection객체에 의해 프로그램에 리턴되는 객체에 의해 구현되는
일종의 메소드 집합 정의
Connection클래스의 createStatement() 메소드를 호출하여 얻어지며
생성된 Statement객체로 질의문장을 String객체에 담아
인자로 전달하여 executeQuery() 메소드를 호출하여 SQL 질의 수행

ex)

try{
String query = “SELECT ID, LAST_NAME FROM EMP”;
stmt = conn.createStatement();
rset = stmt.executeQuery(query);
} catch(SQLException e){
e.printStackTrace();
}

PrepareStatement

Connection객체의 prepareStatement()메소드를 사용하여 객체 생성
SQL문장이 미리 컴파일 되고 실행 시간 동안 인수 값을 위한 공간을
확보한다는 점에서 Statement와 다름
각 인수에 대해 위치홀더(?)를 사용해 SQL문장을 정의할 수 있게 함

try{
String query = “INSERT INTO MEMBER VALUES(?, ?)”;
pstmt = conn.prepareStatement(query);
pstmt.setString(1, id);
pstmt.setString(2, password);
} catch(SQLException e){
e.printStackTrace();
}

ResultSet

SELECT문을 사용한 질의 성공 시 ResultSet반환
SQL질의에 의해 생성된 테이블을 담고 있으며
커서(cursor)로 특정 행에 대한 참조 조작

* JDBC 코딩 절차 *

  1. Driver 등록 -> Class.forName("oracle.jdbc.driver.OracleDriver");

  2. DBMS 연결

Connection conn = DriverManager.getConnection(
“jdbc:oracle:thin:@localhost:1521:XE”,
“JDBC”, “JDBC”)

  1. Statement생성

Statement stmt = conn.createStatement();

  1. SQL전송

String query = “SELECT ID, LAST_NAME FROM EMP”;

rset = stmt.executeQuery(query);

while(rset.next()){

System.out.println(rset.getString(“ID”) + “\t” +
rset.getString(2));
}

  1. 결과 받기

String query = “UPDATE EMP SET LAST_NAME = ‘KIM’”

  • “ WHERE ID = ‘10000’”;
    int result = stmt.executeUpdate(query);
  1. 닫기 (객체 반환)

*아래에서부터 위로 사용한 순으로 닫아주기.

rset.close(); //ResultSet 사용한 경우 반납처리
stmt.close();
conn.close()

0개의 댓글