본문 바로가기

Archived(CSE Programming)/Database(Oracle)

Chap 6. JDBC

JDBC(Java DataBase Connectivity)란 Java에서 Oracle DB에 접속할 수 있게 해주는 API이다.

설치 후 Java lib 폴더 내부로 이동시키면 ecliplse에서도 손쉽게 Oracle DB에 접속할 수 있다.

1. Oracle DB 접속하기 

import java.sql.*;
public class OracleJDBC_Insert {
	public static void main(String[] args) {
	String url = "jdbc:oracle:thin:@localhost:1521:oraknu";
        String user = "kdhong";
        String pass = "kdhong";
        Connection conn = null;
        String sql = null;
        String query = null;
        int result;
        
        // 드라이버 검색(ojdo)
        try {
          Class.forName("oracle.jdbc.driver.OracleDriver");
          System.out.println("드라이버 검색 성공!");
        }catch(ClassNotFoundException e) {
          System.err.println("error = " + e.getMessage());
          System.exit(1);
        }
        
        // 접속하기(jot@l1o)
        try{
          conn = DriverManager.getConnection(url,user,pass);
        }catch(SQLException e) {
          System.err.println("sql error = " + e.getMessage());
          System.exit(1);
        }
    }
}

2. Create, Insert Query 실행

Create, Insert는 결과값을 int로 받아오고 실행시 executeUpdate

import java.sql.*;

public class test{
  public static void main(String[] args){
    // 드라이버 검색
    // 접속
    // 쿼리 실행
    conn.setAutoCommit(false);
    Statement stmt = conn.createStatement();
    String query = "create"
    int result = stmt.executeUpdate(query);
    
    if(result == 0)
    	System.out.println("create 성공");
    
    // 후 처리
    conn.commit();
    conn.setAutoCommit(true);
    stmt.close();
    conn.close();
  }
}
import java.sql.*;

public class test{
  public static void main(String[] args){
    // 드라이버 검색
    // 접속
    // 쿼리 실행
    conn.setAutoCommit(false);
    Statement stmt = conn.createStatement();
    String query = "insert "
    int result = stmt.executeUpdate(query);
    System.out.println(result + "row insert");
    
    // 후 처리
    conn.commit();
    conn.setAutoCommit(true);
    stmt.close();
    conn.close();
  }
}

3. Select Query 실행

Select는 ResultSet으로 받아오고 실행 시에 executeQuery

import java.sql.*;

public class test{
  public static void main(String[] args){
    // 드라이버 검색
    // 접속
    // 쿼리 실행
    conn.setAutoCommit(false);
    Statement stmt = conn.createStatement();
    String query = "select * from emp_java"
    Resultset rs = stmt.executeQuery(query);
    
    // 결과값 확인
    while(rs.next()){
    	String col1 = rs.getString(1);
        String col2 = rs.getString(2);
        int col3 = rs.getInt(3);
        ...
        System.out.println(...);
    }
    
    // 후 처리
    conn.commit();
    conn.setAutoCommit(true);
    stmt.close();
    conn.close();
  }
}

4. Prepared Statement

1) Static Query

자료형을 PreparedStatement pstmt로 선언하고 conn.prepareStatement(query)로 생성하기

executeQuery로 실행하기

import java.sql.*;

public class test{
  public static void main(String[] args){
    // 드라이버 검색
    // 접속
    // 쿼리 실행(자료형은 Prepared, 생성함수는 prepare)
    conn.setAutoCommit(false);
    String query = "select * from emp_java"
    PreparedStatement pstmt = conn.prepareStatement(query);
    Resultset rs = pstmt.executeQuery();
    
    // 결과값 확인
    while(rs.next()){
    	String col1 = rs.getString(1);
        String col2 = rs.getString(2);
        int col3 = rs.getInt(3);
        ...
        System.out.println(...);
    }
    
    // 후 처리
    conn.commit();
    conn.setAutoCommit(true);
    pstmt.close();
    conn.close();
  }
}

2) Dynamic Query (동적으로 변수를 통해 쿼리 조정)

query에 ?로 변수를 지정한 다음 pstmt를 생성하고

pstmt.setInt 와 pstmt.setString을 통해 pstmt의 변수를 지정한 후 executeQuery

import java.sql.*;

public class test{
  public static void main(String[] args){
    // 드라이버 검색
    // 접속
    // 쿼리 실행(자료형은 Prepared, 생성함수는 prepare)
    conn.setAutoCommit(false);
    String query = "select * from emp_java where eid = ? and name = ?"
    PreparedStatement pstmt = conn.prepareStatement(query);
    pstmt.setInt(1,10);
    pstmt.setString(2,"홍길동");
    Resultset rs = pstmt.executeQuery();
    
    // 결과값 확인
    while(rs.next()){
    	String col1 = rs.getString(1);
        String col2 = rs.getString(2);
        int col3 = rs.getInt(3);
        ...
        System.out.println(...);
    }
    
    // 후 처리
    conn.commit();
    conn.setAutoCommit(true);
    pstmt.close();
    conn.close();
  }
}

 

'Archived(CSE Programming) > Database(Oracle)' 카테고리의 다른 글

Chap 7. PL/SQL  (0) 2019.11.27
Chap 5-6. Database 권한(Privilege)  (0) 2019.11.12
Chap 5-4. DataBase 뷰(View)  (1) 2019.11.12
Chap 5. SQL  (0) 2019.10.22
Chap 3. Table Index & B+tree  (0) 2019.10.22