JDBC(Java DataBase Connectivity)란 Java에서 Oracle DB에 접속할 수 있게 해주는 API이다.
설치 후 Java lib 폴더 내부로 이동시키면 ecliplse에서도 손쉽게 Oracle DB에 접속할 수 있다.
1. Oracle DB 접속하기
import java.sql.*;
public class OracleJDBC_Insert {
public static void main(String[] args) {
String url = "jdbc:oracle:thin:@localhost:1521:oraknu";
String user = "kdhong";
String pass = "kdhong";
Connection conn = null;
String sql = null;
String query = null;
int result;
// 드라이버 검색(ojdo)
try {
Class.forName("oracle.jdbc.driver.OracleDriver");
System.out.println("드라이버 검색 성공!");
}catch(ClassNotFoundException e) {
System.err.println("error = " + e.getMessage());
System.exit(1);
}
// 접속하기(jot@l1o)
try{
conn = DriverManager.getConnection(url,user,pass);
}catch(SQLException e) {
System.err.println("sql error = " + e.getMessage());
System.exit(1);
}
}
}
2. Create, Insert Query 실행
Create, Insert는 결과값을 int로 받아오고 실행시 executeUpdate
import java.sql.*;
public class test{
public static void main(String[] args){
// 드라이버 검색
// 접속
// 쿼리 실행
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
String query = "create"
int result = stmt.executeUpdate(query);
if(result == 0)
System.out.println("create 성공");
// 후 처리
conn.commit();
conn.setAutoCommit(true);
stmt.close();
conn.close();
}
}
import java.sql.*;
public class test{
public static void main(String[] args){
// 드라이버 검색
// 접속
// 쿼리 실행
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
String query = "insert "
int result = stmt.executeUpdate(query);
System.out.println(result + "row insert");
// 후 처리
conn.commit();
conn.setAutoCommit(true);
stmt.close();
conn.close();
}
}
3. Select Query 실행
Select는 ResultSet으로 받아오고 실행 시에 executeQuery
import java.sql.*;
public class test{
public static void main(String[] args){
// 드라이버 검색
// 접속
// 쿼리 실행
conn.setAutoCommit(false);
Statement stmt = conn.createStatement();
String query = "select * from emp_java"
Resultset rs = stmt.executeQuery(query);
// 결과값 확인
while(rs.next()){
String col1 = rs.getString(1);
String col2 = rs.getString(2);
int col3 = rs.getInt(3);
...
System.out.println(...);
}
// 후 처리
conn.commit();
conn.setAutoCommit(true);
stmt.close();
conn.close();
}
}
4. Prepared Statement
1) Static Query
자료형을 PreparedStatement pstmt로 선언하고 conn.prepareStatement(query)로 생성하기
executeQuery로 실행하기
import java.sql.*;
public class test{
public static void main(String[] args){
// 드라이버 검색
// 접속
// 쿼리 실행(자료형은 Prepared, 생성함수는 prepare)
conn.setAutoCommit(false);
String query = "select * from emp_java"
PreparedStatement pstmt = conn.prepareStatement(query);
Resultset rs = pstmt.executeQuery();
// 결과값 확인
while(rs.next()){
String col1 = rs.getString(1);
String col2 = rs.getString(2);
int col3 = rs.getInt(3);
...
System.out.println(...);
}
// 후 처리
conn.commit();
conn.setAutoCommit(true);
pstmt.close();
conn.close();
}
}
2) Dynamic Query (동적으로 변수를 통해 쿼리 조정)
query에 ?로 변수를 지정한 다음 pstmt를 생성하고
pstmt.setInt 와 pstmt.setString을 통해 pstmt의 변수를 지정한 후 executeQuery
import java.sql.*;
public class test{
public static void main(String[] args){
// 드라이버 검색
// 접속
// 쿼리 실행(자료형은 Prepared, 생성함수는 prepare)
conn.setAutoCommit(false);
String query = "select * from emp_java where eid = ? and name = ?"
PreparedStatement pstmt = conn.prepareStatement(query);
pstmt.setInt(1,10);
pstmt.setString(2,"홍길동");
Resultset rs = pstmt.executeQuery();
// 결과값 확인
while(rs.next()){
String col1 = rs.getString(1);
String col2 = rs.getString(2);
int col3 = rs.getInt(3);
...
System.out.println(...);
}
// 후 처리
conn.commit();
conn.setAutoCommit(true);
pstmt.close();
conn.close();
}
}
'Archived(CSE Programming) > Database(Oracle)' 카테고리의 다른 글
Chap 7. PL/SQL (0) | 2019.11.27 |
---|---|
Chap 5-6. Database 권한(Privilege) (0) | 2019.11.12 |
Chap 5-4. DataBase 뷰(View) (1) | 2019.11.12 |
Chap 5. SQL (0) | 2019.10.22 |
Chap 3. Table Index & B+tree (0) | 2019.10.22 |