본문 바로가기
DB/oracle

트랜잭션.. 컨트롤 방법. java에서 ..

by 새로운 도전을 위한 한걸음 2015. 5. 10.

모든 app의 시간은 db의 시간을 기준으로 삼는다.

db   : 문자열    |
java : 시간      |(date) SimpleDateFormat으로 데이타 변경
모든 화면의 시간은 database 시간으로 봐야 한다.

트랜잭션  :두개의 행위가 묶여서 하나의 행위를 하는것
ex)
  스위스      작업
한국     북한   한국--> 북한 송금
      |----- 한국  -> 스위스 
    두개의일--------|
한국에서 북한으로 돈을 송금   |----- 스위스  ->  북한
송금할때 스위스를 거쳐서 송금 .

두개의 일이 묶여서 하나의 송금이라는 작업을 한다.

setAutoCommit 트랜잭션 처리

addBatch connect 한번으로 데이터를 모두 처리한다.

try{
   con = getConnection();
   // 트랜잭션 시작 .
   con.setAutoCommit(false); // autocommit할수 없게 false로 설정
      
   stmt = con.createStatement();
   for(int i =0 ; i<arr.length; i++){
    stmt.addBatch(arr[i]); // 일괄 처리를 위해 stmt에 하나씩 데이터 삽입.
   }
   int[] resultArr = stmt.executeBatch(); // 일괄처리.
   for(int i =0; i<resultArr.length; i ++){
    if(resultArr[i]<1){ // 예외처리한다.
     throw new Exception("ERROR");
    }
   }
   
   
   con.commit(); // 성공 했을때 .. commit
   con.setAutoCommit(true); // 다시 원상 복귀 한다.
   
   
   
  }catch(Exception e){
   e.printStackTrace();
   try{
    con.rollback();
   }catch(Exception le){}
  }finally{
   close(null,stmt,con);
  }

 

addBatch ----
      | 
executeBatch ----