Binary World

JAVA CLASS : 자바에 오라클 DB 연동하기(수정, 삭제, 선택) 본문

개발자의 길/JAVA

JAVA CLASS : 자바에 오라클 DB 연동하기(수정, 삭제, 선택)

모쿠 2017. 1. 23. 13:07

<DB 데이터 수정>


JDBCMain04.java


 package edu.java.jdbc04;


import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.sql.Statement;

import java.util.Scanner;


import oracle.jdbc.driver.OracleDriver;


public class JDBCMain04 {


// 1. DB에 사용될 상수들

public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";


public static final String USER = "scott"; // 오라클 계정 이름

public static final String PASSWD = "tiger"; // 오라클 계정 비밀번호


public static final String TABLE_NAME = "ex_contact"; // 테이블 이름

public static final String COL_CID = "cid"; // 첫번째 column

public static final String COL_NAME = "name"; // 두번째 column

public static final String COL_PHONE = "phone"; // 세번째 column

public static final String COL_EMAIL = "email"; // 네번째 column


// update ex_contact

// set name = ? , phone = ?, email = ?

// where cid = ?

public static final String SQL_UPDATE = "update " + TABLE_NAME + " set " + COL_NAME + " = ?, " + COL_PHONE

+ " = ?, " + COL_EMAIL + " = ? " + " where " + COL_CID + " = ?";


public static void main(String[] args) {

System.out.println("JDBC 4 - PreparedStatement");

// 키보드 입력

Scanner sc = new Scanner(System.in);

Connection conn = null;

PreparedStatement pstmt = null;


try {

DriverManager.registerDriver(new OracleDriver());

System.out.println("드라이버 등록 성공");


conn = DriverManager.getConnection(URL, USER, PASSWD);

System.out.println("DB 연결 성공");


// PreparedStatement 객체 생성

pstmt = conn.prepareStatement(SQL_UPDATE);


System.out.println("수정할 인덱스 입력>");

int cid = sc.nextInt();

sc.nextLine();


System.out.println("수정할 이름 입력>");

String name = sc.nextLine();


System.out.println("수정할 전화번호 입력>");

String phone = sc.nextLine();


System.out.println("수정할 이메일 입력>");

String email = sc.nextLine();


// SQL 문장을 완성

pstmt.setString(1, name);

pstmt.setString(2, phone);

pstmt.setString(3, email);

pstmt.setInt(4, cid);


// SQL 문장 실행(DB 서버로 전송)

int result = pstmt.executeUpdate();

System.out.println(result + "행이 수정되었습니다.");


} catch (Exception e) {

e.printStackTrace();

} finally {

try {

pstmt.close();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}


sc.close();


}


}



<DB 데이터 선택>


* JDBCMain03.java (전체 선택)


 package edu.java.jdbc03;


import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.sql.Statement;


import oracle.jdbc.driver.OracleDriver;


public class JDBCMain03 {


// 1. DB에 사용될 상수들

public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";


public static final String USER = "scott"; // 오라클 계정 이름

public static final String PASSWD = "tiger"; // 오라클 계정 비밀번호


public static final String TABLE_NAME = "ex_contact"; // 테이블 이름

public static final String COL_CID = "cid"; // 첫번째 column

public static final String COL_NAME = "name"; // 두번째 column

public static final String COL_PHONE = "phone"; // 세번째 column

public static final String COL_EMAIL = "email"; // 네번째 column


public static void main(String[] args) {

System.out.println("JDBC 3 - select all");


Connection conn = null;

Statement stmt = null;

ResultSet rs = null;

// 오라클 드라이버를 메모리에 로드(드라이버 매니저에 등록)

try {

DriverManager.registerDriver(new OracleDriver());

System.out.println("드라이버 등록 성공");


// DB에 연결(Connection)

conn = DriverManager.getConnection(URL, USER, PASSWD);

System.out.println("DB 연결 성공");


// SQL 문장 실행을 위한 Statement 생성

stmt = conn.createStatement();

System.out.println("Statement 생성 성공");


// SQL 문장 작성

String sql_select = "select * from ex_contact order by cid";


// SQL 문장 실행

rs = stmt.executeQuery(sql_select);


// 결과 확인/처리

// ResultSet.next();

// ResultSet에서 다음 행(row, 레코드)이 있으면

// true를 리턴하고, RS에서 가리키는 위치를 다음 위치로 변경

StringBuffer buffer1 = new StringBuffer();

while (rs.next()) { // 레코드가 존재

int cid = rs.getInt(1); // cid 컬럼

String name = rs.getString(2); // name 컬럼

String phone = rs.getString(3); // phone 컬럼

String email = rs.getString(4); // email 컬럼


buffer1.append(cid + " | ").append(name + " | ").append(phone + " | ").append(email + " | \n");


} // end while ()

System.out.println(buffer1.toString());


} catch (SQLException e) {


e.printStackTrace();

} finally {

// 생성된 리소스들을 해제(close) : 생성된 반대순서로

try {

rs.close();

stmt.close();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}


}


} // end main()


} // end class



* JDBCMain06 (인덱스 검색)


package edu.java.jdbc06;


import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import java.sql.SQLException;

import java.util.Scanner;


import oracle.jdbc.OracleDriver;


public class JDBCMain06 {


// 1. DB에 사용될 상수들

public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";


public static final String USER = "scott"; // 오라클 계정 이름

public static final String PASSWD = "tiger"; // 오라클 계정 비밀번호


public static final String TABLE_NAME = "ex_contact"; // 테이블 이름

public static final String COL_CID = "cid"; // 첫번째 column

public static final String COL_NAME = "name"; // 두번째 column

public static final String COL_PHONE = "phone"; // 세번째 column

public static final String COL_EMAIL = "email"; // 네번째 column

private static Connection conn = null;

private static PreparedStatement pstmt = null;

private static ResultSet rs = null;

private static final String SQL_SELECT = "select * from " + TABLE_NAME + " where " + COL_CID + " = ?";


public static void main(String[] args) {

System.out.println("jdbc5 - select");

Scanner sc = new Scanner(System.in);

try {

DriverManager.registerDriver(new OracleDriver());

System.out.println("드라이버 등록 성공");

conn = DriverManager.getConnection(URL, USER, PASSWD);

System.out.println("DB 연결 성공");

pstmt = conn.prepareStatement(SQL_SELECT);


System.out.println("검색할 인덱스를 입력>");

int cid = sc.nextInt();

sc.nextLine();

pstmt.setInt(1, cid);

rs = pstmt.executeQuery();

StringBuffer buffer = new StringBuffer();

if (rs.next()) { // 첫번째 데이터(레코드)가 있으면

int id = rs.getInt(COL_CID);

String name = rs.getString(COL_NAME);

String phone = rs.getString(COL_PHONE);

String email = rs.getString(COL_EMAIL);

buffer.append(id + " | ").append(name + " | ").append(phone + " | ").append(email + " | \n");

}

System.out.println(buffer.toString());

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

try {

rs.close();

pstmt.close();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}


sc.close();

}


} 



<DB 데이터 삭제>


JDBCMain05.java


package edu.java.jdbc05;


import java.sql.Connection;

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.SQLException;

import java.util.Scanner;


import oracle.jdbc.driver.OracleDriver;


public class JDBCMain05 {


// 1. DB에 사용될 상수들

public static final String URL = "jdbc:oracle:thin:@localhost:1521:xe";


public static final String USER = "scott"; // 오라클 계정 이름

public static final String PASSWD = "tiger"; // 오라클 계정 비밀번호


public static final String TABLE_NAME = "ex_contact"; // 테이블 이름

public static final String COL_CID = "cid"; // 첫번째 column

public static final String COL_NAME = "name"; // 두번째 column

public static final String COL_PHONE = "phone"; // 세번째 column

public static final String COL_EMAIL = "email"; // 네번째 column


private static final String SQL_DELETE = "delete from " + TABLE_NAME + " where cid =?";


public static void main(String[] args) {

System.out.println("JDBC5 - delete");


Scanner sc = new Scanner(System.in);

Connection conn = null;

PreparedStatement pstmt = null;


try {

DriverManager.registerDriver(new OracleDriver());

System.out.println("드라이버 등록 성공");


conn = DriverManager.getConnection(URL, USER, PASSWD);

System.out.println("DB 연결 성공");

pstmt = conn.prepareStatement(SQL_DELETE);


System.out.println("삭제할 인덱스를 입력>");

int cid = sc.nextInt();

sc.nextLine();

pstmt.setInt(1, cid);


int result = pstmt.executeUpdate();

System.out.println(result + "행이 삭제되었습니다.");


} catch (Exception e) {

// TODO Auto-generated catch block

e.printStackTrace();

} finally {

try {

pstmt.close();

conn.close();

} catch (SQLException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

}

sc.close();

}


} 


Comments