본문 바로가기

개인 공부방/JAVA

자바-오라클 연동 3. 데이터 삭제하기 - statement, prepareStatement 이용



일반 statement 이용

import java.sql.*;

import java.util.Scanner;


public class Test {

private Connection CN = null;

private Statement ST = null;

private PreparedStatement PST = null;

private ResultSet RS = null;

private int data1; //사번

private String data2; //이름

private int data3; // 급여

Scanner sc = new Scanner(System.in);

public static void main(String args[]){

Test ob = new Test();

//ob.dbInsert(); //Statement명령어 저장처리

//ob.dbInsert2(); //PreparedStatement 저장처리

ob.dbDelete();

}//main end

public Test() { //생성자 ==> DB정보를 알아야 됨

try {

//순서 1

Class.forName("oracle.jdbc.driver.OracleDriver");

String url = "jdbc:oracle:thin:@127.0.0.1:1521:XE"; //제어판->관리도구->서비스 OracleServiceXXXX

CN = DriverManager.getConnection(url,"user4","pass4");

System.out.println("DB연결성공!!!! DB정보 CN이 기억함");

}catch(Exception ex) { System.out.println(ex.toString()); } //에러정보 문자로 출력

}//생성자

public void dbInsert2() { //PreparedStatement 저장처리

System.out.println("PreparedStatement 명령어로 저장처리");

try {

//순서 2 쿼리문 작성

String msg = "insert into insa values(?, ?, sysdate, ? )";


//순서 3 명령어 생성 PreparedStatement - 기본쿼리문 미리서 해석후 기다림

CN.prepareStatement(msg); //알맹이가 없는 상태에서 컴파일하고 대기, 실행속도가 빠르다.

PST = CN.prepareStatement(msg);

//순서4 데이터 입력후 세팅

System.out.println("데이터를 입력하세요");

System.out.print("사번 : "); data1 = Integer.parseInt(sc.nextLine());

System.out.print("이름 : "); data2 = sc.nextLine();

System.out.print("급여 : "); data3 = Integer.parseInt(sc.nextLine());

PST.setInt(1, data1); // (물음표 x번째, 넣을데이터)

PST.setString(2, data2);

PST.setInt(3, data3);

//순서 5 물음표 대신에 세팅후 명령어 실행

/*

int OK = ST.executeUpdate(msg); //최종실행단계

if ( OK > 0 ) {

System.out.println("저장 성공!");

}*/

int OK = PST.executeUpdate(); //괄호 안의 msg변수가 없다.

if(OK > 0)

System.out.println("PreparedStatement로 저장성공!");

}catch(Exception ex){ System.out.println("저장 실패!"); ex.toString(); }

}

public void dbDelete(){

System.out.println("statement 명령어로 삭제하기");

try {

//순서 2 명령어 생성

ST = CN.createStatement();

//순서 3 쿼리문 작성

System.out.println("삭제할 사번 입력하세요");

System.out.print("사번 : ");

data1 = Integer.parseInt(sc.nextLine());

//delete from insa where sabun = 7774;

String msg = "delete from insa where sabun = "+data1;

System.out.println(msg);

//순서 4 명령어 실행

int OK = ST.executeUpdate(msg); //최종실행단계

if ( OK > 0 ) {

System.out.println("삭제 성공!");

}

}catch(Exception ex){ System.out.println("삭제 실패!"); ex.toString(); }

}

}//class END

//select * from insa;




prepareStatement 이용
public void dbDelete2() { //PreparedStatement 저장처리
  System.out.println("PreparedStatement 명령어로 삭제처리");
  try {   
   //순서 2 쿼리문 작성
   String msg = "delete from insa where sabun = ?";
   //순서 3 명령어 생성 PreparedStatement - 기본쿼리문 미리서 해석후 기다림
   CN.prepareStatement(msg); //알맹이가 없는 상태에서 컴파일하고 대기, 실행속도가 빠르다.
   PST = CN.prepareStatement(msg);
   
   //순서4 데이터 입력후 세팅
   System.out.println("삭제할 데이터를 입력하세요");
   System.out.print("사번 : "); data1 = Integer.parseInt(sc.nextLine());
   PST.setInt(1, data1); // (물음표 x번째, 넣을데이터)
   
   //순서 5 물음표 대신에 세팅후 명령어 실행
   /*
   int OK = ST.executeUpdate(msg); //최종실행단계
   if ( OK > 0 ) {
    System.out.println("저장 성공!");
   }*/
   int OK = PST.executeUpdate(); //괄호 안의 msg변수가 없다.
   if(OK > 0)
    System.out.println("PreparedStatement로 삭제성공!");
  }catch(Exception ex){ System.out.println("삭제 실패!"); ex.toString(); }
 }//class END