import java.io.*;
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; // 급여
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Scanner sc = new Scanner(System.in);
public static void main(String args[]) throws Exception {
Test ob = new Test();
while (true) {
switch (ob.uMenu()) {
case 1: // 신규등록
ob.dbInsert();
break;
case 2: // 신규등록 preparedStatement
ob.dbInsert2();
break;
case 3: // 삭제
ob.dbDelete();
break;
case 4: // 조회
ob.dbSelect();
break;
case 5: // 수정
ob.dbUpdate();
break;
case 6: // 종료
System.out.println("종료합니다.");
System.exit(1);
default:
System.out.println("다시 입력하세요!");
continue;
}
}
}// 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 int uMenu() { // 선택문
System.out.println("1. 신규등록 Statement");
System.out.println("2. 신규등록 preparedStatement");
System.out.println("3. 삭제 Statement");
System.out.println("4. 조회 Statement");
System.out.println("5. 수정 preparedStatement");
System.out.println("6. 종료");
System.out.print("번호 선택 : ");
int num=0;
try {
num = Integer.parseInt(br.readLine());
} catch (Exception e) {
System.out.println("올바르지 않은 입력");
}
return num;
}
public void dbInsert() { // 저장처리
Scanner sc = new Scanner(System.in);
try {
// 순서 2 명령어 생성
ST = CN.createStatement();
// 순서 3 쿼리문 작성
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());
String msg = "insert into insa values(" + data1 + ",'" + data2
+ "', sysdate, " + data3 + ")";
System.out.println(msg);
// 순서 4 명령어 실행
int OK = ST.executeUpdate(msg); // 최종실행단계
if (OK > 0) {
System.out.println("저장 성공!");
}
} catch (Exception ex) {
System.out.println("저장 실패!");
ex.toString();
}
}// end
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() { // statement 삭제처리
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("삭제 성공!");
} else
System.out.println("삭제할 데이터가 없습니다.");
} catch (Exception ex) {
System.out.println("삭제 실패!");
ex.printStackTrace();
}
}
private void dbSelect() {
String find = "";
System.out.println("statement로 insa부 데이터 조회");
try {
ST = CN.createStatement();
System.out.println("조회할 사번 입력 : ");
find = sc.nextLine();
String msg = "select * from insa where sabun = " + find;
RS = ST.executeQuery(msg);
if (RS != null) {
System.out.println("조회 성공!");
System.out.println("\t사번\t이름\t날짜\t\t급여");
System.out
.println("--------------------------------------------");
while (RS.next() == true) {
data1 = RS.getInt("sabun");
data2 = RS.getString("name");
java.util.Date dt = RS.getDate("nalja");
data3 = RS.getInt("pay");
String dsp = "\t" + data1 + "\t" + data2 + "\t" + dt + "\t"
+ data3;
System.out.println(dsp);
}
}
} catch (Exception ex) {
System.out.println("조회 작업 실패!" + ex.toString());
}
}
public void dbUpdate() { // 리스트확인
System.out.println("prepareStatement로 수정");
try {
String msg = "update insa set name=?, nalja=sysdate, pay=? where sabun=?";
PST = CN.prepareStatement(msg);
System.out.println("이름을 수정할 사번?");
data1 = Integer.parseInt(sc.nextLine());
System.out.print("바꿀 이름 : ");
data2 = sc.nextLine();
System.out.println("수정할 급여 ? : ");
data3 = Integer.parseInt(sc.nextLine());
PST.setString(1, data2);
PST.setInt(2, data3);
PST.setInt(3, data1);
int OK = PST.executeUpdate();
if (OK > 0)
System.out.println("수정 성공");
} catch (Exception e) {
System.out.println("수정 실패");
}
}// end
}
// select * from insa;
'개인 공부방 > JAVA' 카테고리의 다른 글
자바 계산기 v2 (0) | 2012.10.16 |
---|---|
자바 계산기 v1 (0) | 2012.10.15 |
자바-오라클 연동 3. 데이터 삭제하기 - statement, prepareStatement 이용 (0) | 2011.11.30 |
자바-오라클 연동 3. 데이터 삽입 기초-preparedStatement (0) | 2011.11.30 |
자바-오라클 연동 2. 데이터 삽입 기초-일반적 statement (1) | 2011.11.29 |