• 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를 사용할 경우 줄 수 있는 피해때문입니다.
즉, 내가 쓴건 내가 치우자 라는 뜻이죠

0개의 댓글