본문 바로가기

개인 공부방/JAVA

자바-오라클 연동 3. 데이터 삽입 기초-preparedStatement

preparedStatement를 이용한 데이터 삽입방법.

미리 넣어둘 틀을 만들고 값을 받아들인다.

실행속도가 빠르다.


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 저장처리

}//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(); }

}

}//class END

//select * from insa;







삭제 방법은

delete from insa;
commit;

하면 데이터가 삭제된다.