JDBC를 이용한 데이터 베이스 처리 순서
- 순서 : JDBC드라이버 로딩 -> 해당 DB에 접속 -> 질의(SQL명령을 수행한다) -> 질의 결과를 받아서 처리한다. -> 종료(자원반납)
- JDBC 드라이버 로딩(오라클 기준)
=> JDBC드라이버는 DB를 만든 회사에서 제공한다.
Class.forName("oracle.jdbc.driver.Oracledriver");
- 접속하기 : 접속이 성공하면 Connection 객체가 생성된다.
DriverManager.getConnection()메서드를 이용한다.
- 질의 : Statement객체 또는 PrparedStatement객체를 이용하여 SQL문장을 실행한다. ( 접속에 성공하여 얻어온 Connection객체 안에 있는 statement객체를 통해서 질의)
- 결과 :
1) SQL문이 select일 경우 => ResultSet객체가 만들어진다.
ResultSet객체에는 select한 결과가 저장된다.
2) SQL문이 insert, update, delete일 경우 => 정수값을 반환한다.
(정수값은 보통 실행에 성공한 레코드 수를 의미한다.)
public static void main(String args[]) {
Connection conn = null;
Statement stmt = null;
ResultSet rs = null;
try {
Class.forname("oracle.jdbc.driver.OracleDriver");
String url = "jdbc:oracle:thin:@localhost:1521/xe";
String user = "접속할 계정";
String password = "해당 계정 비밀번호";
conn = DriverManager.getConnection(url, user, password);
stmt = conn.createStatement();
String sql = "SELECT * FROM LPROD";
rs = stmt.executeQuery(sql);
System.out.println("실행한 쿼리문 : " + sql);
System.out.println("=== 쿼리문 실행 결과 ===");
while(rs.next()) {
System.out.println("lprod_id : " + rs.getInt(1));
System.out.println("lprod_gu : " + rs.getString("lprod_gu"));
System.our.println("lprod_nm : " + rs.getString("lprod_nm"));
System.out.println("-----------------------------------------");
}
System.out.println("출력 끝...");
}catch(ClassNotFoundException ex) {
ex.printStackTrace();
}catch(SQLException ex) {
ex.printStackTrace();
}finally {
if(rs != null) try {rs.close();}catch(SQLException ex) {}
if(stmt != null) try {stmt.close();}catch(SQLException ex) {}
if(conn != null) try {conn.close();}catch(SQLException ex) {}
}
}
public class JDBCUtil {
static {
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("드라이버 로딩 완료!!!");
}catch(ClassNotFoundException ex) {
System.out.println("드라이버 로딩 실패!!!");
}
}
public static Connection getConnection() {
try {
return DriverManager.getConnection(
"jdbc:oracle:thin:@localhost:1521/xe",
"pc15",
"java");
}catch(SQLException e) {
System.out.println("DB 연결 실패!!!");
return null;
}
}
public static void disConnect(Connection conn,
Statement stmt, PreparedStatement pstmt, ResultSet rs) {
if(rs != null) try {rs.close();}catch(SQLException ex) {}
if(stmt != null) try {stmt.close();}catch(SQLException ex) {}
if(pstmt != null) try {pstmt.close();}catch(SQLException ex) {}
if(conn != null) try {conn.close();}catch(SQLException ex) {}
}
}