JDBC (Java Database Connectivity)
자바와 데이터베이스를 연결해주는 라이브러리
그 동안 우리는 List나 배열, 또는 Map 에 아무리 담아도 새로 시작하면 내가 공들여 넣은 값들은 사라지기 마련이었다.
하지만 값을 넣고 지우는 일의 무한반복은 이제 끝이다.
가끔 하 DB에 있는 값을 가져와 그냥 Console 창에 띄우고 싶다... 이런 생각을 한 번쯤 하셨던 분들에게 아주 좋은 라이브러리 입니다.
라이브러리
라이브러리는 무엇일까요?
라이브러리가 우리 말로 도서관이라는 사실 모두 아실 겁니다.
도서관 하면 무엇이 떠오르나요?
저는 책이 가득하고 그 책 속에서 유용한 정보를 꺼내 사용하고 있는 제 모습이 떠오릅니다.
자바에서도 마찬가지로 우리는 라이브러리에 가서 유용한 정보를 꺼내 사용할 수 있습니다.
오늘 우리는 수많은 라이브러리 중 자바와 데이터베이스를 연결해주는 라이브러리를 알아보겠습니다.
개발환경 구축
일단 우리는 라이브러리 즉, 도서관으로 버스를 타든, 걸어가든 도서관에 도착해야 합니다.
코드 세계에서도 마찬가지로 URL 을 타고 도서관에 도착해보세요.
http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html?ssSourceSiteId=ocomen
일단 JDBC는 오라클 회사 소유입니다. 때문에 회원가입 후 설치해야하죠ㅡㅡ
설치를 받고 압출을 풀면 OJDBC.jar 파일이 존재합니다.
생김새가 마치 압축파일처럼 생겼다고 무작정 압축을 풀지 마시고 그 상태로 냅둔 상태에서
자바 프로젝트에 lib 폴더를 생성 후 copy 해주거나
Add External JARs.. 를 누른 후 OJDBC.jar 가 위치한 파일의 경로를 추가해주면 됩니다.
JDBC 사용
JDBC 작성 단계
1. Connection 생성(DB 연결) 오라클과 자바
2. Statement 생성(쿼리 작성)
3. Query 실행
4. ResultSet에서 결과 추출(select인 경우)
5. ResultSet, Statement, Connection 닫기
임의의 순서를 제 마음대로 정했는데 한 번 순서대로 코드를 짜보겠습니다.
String url = "jdbc:oracle:thin:@localhost:1521:xe";
String user = "id";
String password = "pass";
Connection con = null;
PreparedStatement ps = null;
resultSet rs = null;
자 이제 앞서 배운 try{}catch(){}를 사용할 때입니다.
try {
con = DriverManager.getConnection(url, user, password);
String sql = "select * from member";
ps = con.prepareStatement(sql);
rs = ps.executeQuery();
int count = 1;
while(rs.next()){
String memId = rs.getString(1); // rs 객체에서는 값을 가져올 때 컬럼 index번호나 컬럼명으로 가져올 수 있습니다.
String memPass = rs.getString("MEM_PASS");
System.out.println(count++ + " MEM_ID : " + memId + "/ MEM_PASS : " + memPass);
}
} catch (SQLException e) {
e.printStackTrace();
} finally {
if(rs != null) try { rs.close(); } catch(Exception e) {}
if(ps != null) try { ps.close(); } catch(Exception e) {}
if(con != null) try { con.close(); } catch(Exception e) {}
}
위에 순서를 되새이면서 천천히 코드를 읽어 보시기 바랍니당~!
참고로 finally 부분의 close() 는 꼭 해줘야 하는 부분입니다,, 때문에 finally 부에서 사용되고 있죠
이유론 다양합니다. close 를 하지않으면 커밋이 제대로 되지 않거나, DB의 속도가 느려지는 등, 또한 여러 사람이 한 DB를 사용할 경우 줄 수 있는 피해때문입니다.
즉, 내가 쓴건 내가 치우자 라는 뜻이죠