반응형
JDBC를 적용하기 위한 절차
1. DBMS등록 (properties 파일 생성)
2. Driver로부터 Connection instance 획득
Statement 로 SQL 문 실행
PreparedStatement로 SQL문 실행
1.
PreparedStatement로 EMPOLYEE에 있는 EMP_ID와 EMP_NAME를 조회해보자.
package com.greedy.section02.preparedstatement;
import static com.greedy.common.JDBCTemplate.*;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
public class Application1 {
public static void main(String[] args) {
Connection conn = getConnection();
PreparedStatement pstms = null; //쿼리문을 저장하고 실행하는 기능을 하는 용도의 인터페이스
ResultSet rset = null; //select 결과 집합을 받아올 용도의 인터페이스
try{
미리 SQL 구문을 준비하는 메소드 이기 때문에 SQL구문을 인자로 전달
pstms = conn.preareStatement("SELECT EMP_ID, EMP_NAME FORM EMPLOYEE");
PreparedStatement 객체 생성 시 이미 SQL문을 전달하여 설정해 두었기
때문에 실행시에는 SQL문을 전달하지 않은
rset = pstmt.executQuery();
whil(rset.next()){
System.out.println(rset.getString("EMP_ID") + "," + rset.getString("EMP_NAME"));
}
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
close(rset);
close(pstmt); preparedStatement는 Statment를 상속하고 있기 때문에 pstmt로 닫아도 오류 없음
close(conn);
}
}
}
출력 결과
201,송종기
202,노옹철
203,송은희
204,유재식
205,정중앙
...
PreparedStatement 를 사용하여 사용자가 입력한 값을 통해 출력해보자
public class Application2 {
public static void main(String[] args) {
1. Connection 생성
Connection conn = getConnection();
PreparedStatement pstmt = null;
ResultSet rset = null;
Scanner sc = new Scanner(System.in);
Sytem.out.print("조회하려는 사번을 입력하세요 : ");
String empId = sc.nextLine();
쿼리문 내의 변경 되는 입력 값들을 ? (위치홀더) 를 이용해서 표기
String query = "SELECT EMP_ID, EMP_NAME FROM EMPLOYEE WHERE EMP_ID= ?";
try{
2. PreparedStatement 생성하고 위치 홀더로 표기 되었던 값에 들어가야 하는 값 입력
pstmt = conn.prepareStatement(query);
pstmt.setString(1, empId);
=>pstmt.setString(index번호, 입력값) index는 1번부터 시작
3. executeQuery()로 쿼리문 실행하고 결과를 ResultSet으로 반환 받음
rset = pstmt.executeQuery();
4. ResultSet에 담긴 결과 값을 컴럼 이름을 이용해서 꺼내옴
while(rset.next()) {
System.out.println(rset.getString("EMP_ID") + ", " + rset.getString("EMP_NAME"));
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
5. 사용한 자원을 반납한다.
close(rset);
close(pstmt);
close(conn);
}
}
}
출력결과
조회하려는 사번을 입력해주세요 : 207
207, 하이유
반응형
'프로그래밍 > JDBC' 카테고리의 다른 글
04 JDBC : Service 사용 (0) | 2022.08.29 |
---|---|
03 JDBC : PreparedStatement 를 사용하여 insert, update, delete 구문 수행하기 (0) | 2022.08.29 |
01 JDBC : JDBC 사용 클래스 (0) | 2022.08.26 |