본문 바로가기

Programming/JAVA

자바와 오라클(Oracle) 연동하기


출처 : http://cafe.naver.com/breakjava/93

  1. package db;
  2. /*
  3.  * 자바와 db연동 시키기
  4.  * insert, select, delete, update를 db를 이용해서 작성및 변경, 삭제하기
  5.  */
  6. import java.sql.Connection;
  7. import java.sql.DriverManager;
  8. import java.sql.ResultSet;
  9. import java.sql.Statement;
  10. import org.omg.CORBA.SetOverrideType;
  11. public class DbTest1 {
  12.  Connection conn;
  13.  Statement stmt; // 필요한것을 매번 불러옴 .스테이트 먼트의 특징
  14.  ResultSet rs;
  15.  String sql; // 전역변수 초기값은 0
  16.  public DbTest1() {
  17.   try {                         // OracleDriver을 불러옴
  18.    Class.forName("oracle.jdbc.driver.OracleDriver")// 오라클에서 제공하는
  19.                                                                          // OracleDriver
  20.   } catch (Exception e) {
  21.    System.out.println("로딩 실패 :" + e);                // 실패하면 리턴하라
  22.    return;
  23.   }
  24.   try {                                                          // db접속 "커넥션~"
  25.    conn = DriverManager.getConnection(
  26.      "jdbc:oracle:thin:@211.183.3.182:1521:orcl""scott","tiger")// 아이피:코드:포트
  27.   } catch (Exception e) {
  28.    System.out.println("DB연결 실패 :" + e);            // 실패하면 리턴하라
  29.    return;
  30.   }
  31.   try {                                                               // db에서 자료를 불러옴
  32.    stmt = conn.createStatement()// db에 연결후 sql 문장 명령어 사용하기 위해 "statement" 사용
  33.    // Transaction처리 ----------------------시작
  34.    try {
  35.     conn.setAutoCommit(false);    // 오토Commit 에 펄스값을 줘서 해제합니다
  36.     // insert 처리 문장
  37.    
  38.     /*
  39.     String co = "12";
  40.     String na = "강석훈";
  41.     // int ag = 25;
  42.     String ag = "28";
  43.     // 들어오는 컬럼 위치와 동일하면 (code,name,age) 안써도 상관없다
  44.     sql = "insert into good(code,name,age) values
  45. (" + co + ",'"+ na + "'" + "," + ag + ")"; // 문자나 날짜는 반드시 작은따옴표 를 붙여야함
  46.     // System.out.println(sql); //sql문장이 맞는지 자주 찍어보는 습관을 기릅시다..
  47.     stmt.executeUpdate(sql);
  48.     */
  49.    
  50.     /*
  51.     //update 처리 문장
  52.     sql = "update good set name = '저팔계',age=27 where code = 3";  // 변경할 행 선택...
  53.     int re = stmt.executeUpdate(sql); // select 이외의 모든 sql문 수행은(익스큐트업데이트) 로 합니다.
  54.     if(re == 0) System.out.println("수정실패");   //들어온 값이 없으니 수정된것도 없겠지요~
  55.     */
  56.    
  57.     /*
  58.     //delete 처리 문장
  59.     sql = "delete from good where code = 177";
  60.     if(stmt.executeUpdate(sql) == 0)  //업데이트 if문이랑 똑같은 것임
  61.      System.out.println("삭제 실패");
  62.     */
  63.    
  64.     //conn.rollback();  //이곳에다 롤빽하면 인서트한게 취소됩니다.
  65.     conn.commit();
  66.    } catch (Exception e) {
  67.     System.out.println("추가,수정,삭제 중 에러발생:"+e);
  68.     conn.rollback();
  69.    }finally{
  70.     conn.setAutoCommit(true)//오토커밋에 트루를 걸어  다시 autocommit 을 실행시킵니다.
  71.    }
  72.    // Transaction처리 ----------------------끝
  73.    // select 처리 문장
  74.    // rs = stmt.executeQuery("select * from good"); //sql문장 부름(<=조래 * 를써서 컬럼을 부르믄 기동력이 떨어집니다.)
  75.    // rs = stmt.executeQuery("select code,name,age from good"); //동일한 데이터는 등록안됨
  76.    sql = "select gogek_no,gogek_name,gogek_tel,gogek_jumin,gogek_damsano from gogek";
  77.    rs = stmt.executeQuery(sql);
  78.    // rs = stmt.executeQuery("select name,code,age from good"); //
  79.    // rs = stmt.executeQuery("select code as 코드,name,age from good"); //컬럼에 별명을 붙여서 불러올수도 있어욤
  80.    // sql문장은 원래 대문자로 작성을 해야함..그러나  자바에선 별로 상관없지요.그래도 다른 예민한프로그램은 영향을 줍니다
  81.    // select의 값은 rs(리졀셋)이 받는다
  82.    // rs = stmt.executeQuery("select count(*), cou, max(age) from good");
  83.    // count(*), cou, max(age)   // 1번째 , 2번째, 3번째 이런식으로
  84.    // Statement swing을 사용함
  85.    while (rs.next()) {                       //rs 내용물이 다없어질때까지 뽑아내겠다는 의지~
  86.     String code = rs.getString(1);
  87.     String name = rs.getString(2);
  88.     String minbun = rs.getString(3);
  89.     String tel = rs.getString(4);
  90.     System.out.println(code + "" + name + "" + tel)// 콘솔창으로 출력해서 확인해봅니다.
  91.        
  92.    
  93.    }
  94.   } catch (Exception e) {
  95.    System.out.println("SQL 오류 :" + e);
  96.   } finally { // 오류발생하더라도 그냥 실행하라
  97.    try { // 작업이 끝나고 반환하라
  98.     if (rs != null)
  99.      rs.close();
  100.     if (stmt != null)
  101.      stmt.close();
  102.     if (conn != null)
  103.      conn.close();
  104.    } catch (Exception e2) { }
  105.   }
  106.  }
  107.  public static void main(String[] args) {
  108.   new DbTest1();     //가장 중요함! 메인메소드에서 생성자호출
  109.  }                                                          //요고 안해줘서 에러도 못잡고 실행안된다고 하는사람들이 꽤있어요^^
  110. }


'Programming > JAVA' 카테고리의 다른 글

SWT 컴포넌트  (0) 2013.08.22
자바 룩앤필  (0) 2012.11.29
[자바] Infinity 처리  (0) 2012.10.13
[자바] NaN, Infinity  (0) 2012.10.13
[Swing] 스크린 가운데 배치  (0) 2012.10.07