꺄르륵
[Java] Eclipse Kepler - DB, Java 연동하기 (JDBC) 본문
JARs 파일 추가후 작업해줍니다.
데이터베이스(DB) 처리 순서
JDBC ? Java DataBase Connectivity - 자바-db 연동
==========================================
자바-DB 연동 순서
==========================================
1. 드라이버 로딩 -> JDBC라이브러리를 JVM 메모리에 로딩한다.
Class.forName("oracle.jdbc.driver.OracleDriver");
2. DB에 접속하기 -> DB에 접속이 성공하면 Connection객체가 생성된다.
DriverManager.getConnection() 메서드를 이용한다.
3. 처리할 SQL 명령을 DB에 전달할 객체를 생성한 후 SQL명령을 DB에 전달하여 처리한다.
(Statement 객체 또는 preparedStatement 객체를 이용하여 처리한다.)
(Statement 객체와 PraparedStatement 객체는 Connection 객체를 이용하여 생성할 수 있다.)
4. SQL문의 처리 결과를 받아서 프로그램 용도에 맞게 사용한다.
1) SQL문이 'SELECT'일 경우 -> ResultSet객체가 만들어진다.
ResultSet 객체에는 select한 결과가 저장된다.
2) SQL문이 'SELECT'가 아닐 경우 (UPDATE, DELETE, INSERT 등일 경우)
--> 정수값이 반환된다. (정수값은 보통 처리한 레코드 수를 의미한다.)
5. 자원을 반납한다.
package basic;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
public class JdbcTest01 {
public static void main(String[] args) {
// DB작업에 필요한 객체변수 선언
Connection conn = null;
Statement stmt = null;
ResultSet rs = null; // 쿼리문이 SELECT문일 경우 필요하다.
String driver = "oracle.jdbc.driver.OracleDriver";
String url = "jdbc:oracle:thin:@localhost:1521:xe";
//String url = "jdbc:oracle:thin:@/*DB주소*/:/*포트번호*/:/*SID*/";
String user = "ljm";
String password = "java";
try {
// 1. 드라이버 로딩
Class.forName(driver);
System.out.println("jdbc driver 로딩 성공");
// 2. DB에 접속하기
conn = DriverManager.getConnection(url, user, password);
System.out.println("오라클 연결 성공");
// 3. 처리할 SQL문 작성
String sql = "SELECT * FROM EMPLOYEES";
//String sql = "/*SQL DEVELOPER에서 작성한 쿼리 내용을 입력해준다.*/";
// 4. Statement 객체 또는 PraparedStatement 객체를 생성한다.
stmt = conn.createStatement();
// 5. SQL문을 DB에 전달해서 실행한 후 결과를 받아온다.
rs = stmt.executeQuery(sql);
//rs = stmt.executeQuery(/*처리할 SQL 문장*/);
// 6. ResultSet 객체에 저장된 데이터를 반복문을 이용하여 차례로 꺼내온다.
while(rs.next()){
// re.next() -> ResultSet 객체에 저장된 데이터를 가리키는 포인터를 다음 레코드로 이동시키고
// 그 곳에 데이터가 있으면 true, 없으면 false를 반환한다.
// ResultSet객체의 포인터가 가리키고 있는 레코드의 각 컬럼값을 읽어오는 방법
// 읽어오는 방법
// 방법 1) rs.get자료형이름("컬렴명");
// 방법 2) rs.get자료형이름("컬럼의엘리어스명(별칭)");
// 방법 3) rs.get자료형이름(컬럼의 순번); // 컬럼의 순번은 1번부터 시작한다.
System.out.println("EMPLOYEE_ID : " + rs.getInt("EMPLOYEE_ID"));
System.out.println("EMP_NAME : " + rs.getString(2));
System.out.println("CREATE_DATE : " + rs.getDate("CREATE_DATE"));
System.out.println("--------------------------------------------------");
}
} catch (ClassNotFoundException e) {
System.out.println("jdbc driver 로딩 실패");
} catch (SQLException e) {
System.out.println("오라클 연결 실패");
} finally {
// 사용했던 자원을 반납한다. 사용했던 순서 반대로 반납한다.
if(rs != null) try { rs.close(); } catch (SQLException e) {}
if(stmt != null) try { stmt.close(); } catch (SQLException e) {}
if(conn != null) try { conn.close(); } catch (SQLException e) {}
}
}
}
'프로그래밍 > Java' 카테고리의 다른 글
[Java] DBUtill - jdbc, oracle 연동 방법 - III (0) | 2019.10.21 |
---|---|
[Java] DBUtill - jdbc, oracle 연동 방법 - II (0) | 2019.10.21 |
[Java] DBUtill - jdbc, oracle 연동 방법 - I (0) | 2019.10.21 |
[Java] DB, Java 테이블에 데이터 추가하기 (JDBC) (0) | 2019.10.18 |
0906 _ Java의 정석 7장 객체지향 프로그래밍 II (0) | 2019.09.06 |