
라이브러리 연동 설정 등 확인
jar파일, 드라이버 연동

CREATE USER DBTEST IDENTIFIED BY a1234;
GRANT CONNECT, RESOURCE TO DBTEST;
ALTER USER DBTEST DEFAULT TABLESPACE USERS;
ALTER USER DBTEST QUOTA UNLIMITED ON USERS;
--- DBTEST 연결
CREATE TABLE MEMBER (
NAME VARCHAR2(20) NOT NULL,
AGE NUMBER(3),
HEIGHT NUMBER(10,2),
LOGTIME DATE
);
DESC MEMBER;
SELECT * FROM MEMBER;
package ch01_driver;
import java.sql.Connection;
import java.sql.DriverManager;
/*
* # JDBC ( Java Database Connectivity )
* - Java 와 DB 연동
*
* # JDBC 드라이버
* - DBMS 마다 별도의 드라이버가 필요
* - 프로젝트의 build path 를 사용해서 추가
*
* # JDBC 드라이버 클래스
* - oracle.jdbc.OracleDriver
*
* # Oracle Database URL
* - jdbc:oracle:driver_type:@host_name(ip):port:service_name
* - jdbc:oracle:thin:@localhost:1521:xe
*
* 외부에서 DB에 연결시 사용되는 값
* 외부에서 연결시 계정 user_name, pw, ip, port, SID
*/
/*
*
*/
public class DriverConnect {
public static void main(String[] args) {
// jdbc 드라이버 로딩
try {
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("로딩 성공");
} catch (Exception e) {
System.out.println("로딩 실패 ㅠㅠ");
e.printStackTrace();
}
// 연결정보
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String id = "DBTEST";
String pwd = "a1234";
Connection con = null;
// DB에 연결할 객체 만들기
try {
// DB 연결 객체 생성
con = DriverManager.getConnection(url, id, pwd);
System.out.println("연결 성공");
} catch (Exception e) {
System.out.println("연결 실패");
e.printStackTrace();
}
// oci 사용자는 지갑 정보 중요함 잘 관리하기
}
}
package ch02_insert;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;
/*
* # JDBC 절차
* 1. DriverManager 에 해당 DBMS Driver 등록
* 2. Driver 로 부터 Connection instance 획득
* 3. Connection 객체의 prepareStatement() 메서드를 사용하여 PreparedStatement 객체 생성
* >> pared / pare 주의
* - 각각의 인수에 대해 위치홀더(?) 를 사용해서 SQL 문장을 정의
* # PreparedStatement : java.sql.PreparedStatement
* - 쿼리 실행을 위한 class
* - 쿼리 실행 메서드
* > int executeUpdate() : insert, delete, update 문을 실행해서 성공한 행의 수를 반환
* ResultSet executeQuery() : select 문을 실행한 결과의 테이블 내용을 ResultSet 에 담아서 봔환
*/
class Insert {
// 연결 정보
private String url = "jdbc:oracle:thin:@localhost:1521:xe";
private String id = "DBTEST";
private String pwd = "a1234";
public Insert() {
// jdbc 드라이버 로딩
try {
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("로딩 성공");
} catch (Exception e) {
System.out.println("로딩 실패 ㅠㅠ");
e.printStackTrace();
}
} // insert() end
public Connection getConnection() {
Connection con = null;
try {
// DB 연결 객체 생성
con = DriverManager.getConnection(url, id, pwd);
System.out.println("연결 성공");
} catch (Exception e) {
System.out.println("연결 실패");
e.printStackTrace();
}
return con;
} // getConnection() end
// 회원 추가
public void insertArticle() {
Scanner sc = new Scanner(System.in);
System.out.print("이름 입력 > ");
String name = sc.next();
System.out.print("나이 입력 > ");
int age = sc.nextInt();
System.out.print("키 입력 > ");
double height = sc.nextDouble();
Connection con = null;
PreparedStatement pstmt = null;
int res = 0;
try {
// 질의 문자열
// 문자열은 나중에 처리할 것 - 보안문제 >> ? 로 처리
// sql문에 필요한 띄어쓰기만 입력할 것
String sql = "insert into member values(?,?,?,sysdate)"; // ? : 위치홀더
con = getConnection(); // connection 객체 생성
pstmt = con.prepareStatement(sql); // 쿼리문 실행 객체 생성
pstmt.setString(1, name); // 위치의 index 값은 1부터임 > sql
pstmt.setInt(2, age);
pstmt.setDouble(3, height);
res = pstmt.executeUpdate(); // 쿼리문 실행
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 사용 자원 종료
if (pstmt != null)
pstmt.close();
if (con != null)
con.close();
if (sc != null)
sc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println(res + "개의 행이 추가 되었습니다~");
} // insertArticle() end
}
public class InsertTest {
public static void main(String[] args) {
Insert data = new Insert();
data.insertArticle();
}
}
package ch03_select;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
class Select {
// 연결 정보
private String url = "jdbc:oracle:thin:@localhost:1521:xe";
private String id = "DBTEST";
private String pwd = "a1234";
public Select() {
// jdbc 드라이버 로딩
try {
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("로딩 성공");
} catch (Exception e) {
System.out.println("로딩 실패 ㅠㅠ");
e.printStackTrace();
}
} // Select() end
public Connection getConnection() {
Connection con = null;
try {
// DB 연결 객체 생성
con = DriverManager.getConnection(url, id, pwd);
System.out.println("연결 성공");
} catch (Exception e) {
System.out.println("연결 실패");
e.printStackTrace();
}
return con;
} // getConnection() end
// 회원 목록
public void selectArticle() {
Connection con = null;
PreparedStatement pstmt = null;
ResultSet res = null;
try {
// sql문에 필요한 띄어쓰기만 입력할 것
String sql = "select * from member";
con = getConnection();
pstmt = con.prepareStatement(sql);
pstmt.executeQuery();
res = pstmt.executeQuery();
if(res == null) {
System.out.println("조회된 데이터가 없습니다.");
} else {
while(res.next()) {
String name = res.getString("name");
int age = res.getInt("age");
double height = res.getDouble("height");
String logtime = res.getString("logtime");
System.out.println(name + "\t" + age + "\t" + height + "\t" + logtime);
}
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(res != null) res.close();
if(pstmt != null) pstmt.close();
if(con != null) con.close();
} catch (Exception e) {
e.printStackTrace();
}
}
} // selectArticle() end
}
public class SelectTest {
public static void main(String[] args) {
Select data = new Select();
data.selectArticle();
}
}
package ch04_update;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.Scanner;
class Update {
// 연결 정보
private String url = "jdbc:oracle:thin:@localhost:1521:xe";
private String id = "DBTEST";
private String pwd = "a1234";
public Update() {
// jdbc 드라이버 로딩
try {
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("로딩 성공");
} catch (Exception e) {
System.out.println("로딩 실패 ㅠㅠ");
e.printStackTrace();
}
} // Select() end
public Connection getConnection() {
Connection con = null;
try {
// DB 연결 객체 생성
con = DriverManager.getConnection(url, id, pwd);
System.out.println("연결 성공");
} catch (Exception e) {
System.out.println("연결 실패");
e.printStackTrace();
}
return con;
} // getConnection() end
// 회원 정보 수정 : 이름으로 조회해서 나이 1살 증가
public void updateArticle() {
Scanner sc = new Scanner(System.in);
System.out.println("수정 이름 입력 > ");
String name = sc.next();
Connection con = null;
PreparedStatement pstmt = null;
int res = 0;
try {
// sql문에 필요한 띄어쓰기만 입력할 것
String sql = "update member set age=age+1 where name=?";
con = getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setString(1, name);
res = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if(pstmt != null) pstmt.close();
if(con != null) con.close();
if(sc != null) sc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println(res + " 개의 행이 수정되었습니다.");
System.out.println(name + " 의 나이가 +1 되었습니다.");
} // updateArticle() end
}
public class UpdateTest {
public static void main(String[] args) {
Update data = new Update();
data.updateArticle();
}
}
package ch05_delete;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.Scanner;
class Delete {
// 연결 정보
private String url = "jdbc:oracle:thin:@localhost:1521:xe";
private String id = "DBTEST";
private String pwd = "a1234";
public Delete() {
// jdbc 드라이버 로딩
try {
Class.forName("oracle.jdbc.OracleDriver");
System.out.println("로딩 성공");
} catch (Exception e) {
System.out.println("로딩 실패 ㅠㅠ");
e.printStackTrace();
}
} // Delete() end
public Connection getConnection() {
Connection con = null;
try {
con = DriverManager.getConnection(url, id, pwd);
System.out.println("연결 성공");
} catch (Exception e) {
System.out.println("연결 실패");
e.printStackTrace();
}
return con;
} // getConnection() end
// 회원 삭제 : 이름으로 삭제 진행
public void deleteArticle() {
Scanner sc = new Scanner(System.in);
System.out.print("이름 입력 > ");
String name = sc.next();
Connection con = null;
PreparedStatement pstmt = null;
int res = 0;
try {
String sql = "DELETE FROM MEMBER WHERE NAME=?";
con = getConnection();
pstmt = con.prepareStatement(sql);
pstmt.setString(1, name);
res = pstmt.executeUpdate();
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
// 사용 자원 종료
if (pstmt != null)
pstmt.close();
if (con != null)
con.close();
if (sc != null)
sc.close();
} catch (Exception e) {
e.printStackTrace();
}
}
System.out.println(res + "개의 행이 삭제 되었습니다~");
} // deleteArticle() end
}
public class DeleteTest {
public static void main(String[] args) {
Delete data = new Delete();
data.deleteArticle();
}
}