@ Java DataBase Connectivity


@ 자바에서 데이타베이스와 관련된 작업을 처리할 수 있게 도와주는 API


@ DBMS종류에 상관없이 데이터베이스 작업 처리.


@ JDBC 드라이버는 클래스 형태로 존재하며 일반적으로 Jar 파일로 제공됨

  - MySQL : mysql-connector-java-3.0.14-production-bin.jar

  - Oracle : oracle\classes12.jar


@ JDBC 코딩 스타일

   1. JDBC 드라이버 로딩

       - MySQL : com.mysql.jdbc.Driver

       - Oracle : oracle.jdbc.driver.OracleDriver


  private OracleDAO() {
  try {
   Class.forName(OracleDAO.DRIVER);
  } catch(ClassNotFoundException cnfe) {
   System.out.println("Driver Not Found!!!");
  }
 }

   2. 데이터베이스 커넷션 구함

     

private void connect() {
  try {
   con = DriverManager.getConnection(
     OracleDAO.URL,
     OracleDAO.USER,
     OracleDAO.PASSWORD
   );
  } catch (SQLException sqle) {
   System.out.println("Wrong Infomation to Connection!!!");
  }
 }


   3. 쿼리 실행을 위한 Statement 객체 생성

   4. 쿼리 실행

   5. 쿼리 실행 결과 사용

   6. Statement 종료

   7. 데이터베이스 커넥션 종료


@ Oracle의 LONG 타입, MySQL의 MEDIUMTEXT(VARCHAR) 을 ResultSet으로 값을 얻어 올떄, getCharacterStream()메소드를 사용하여 읽어 와야 한다.


@ PreparedStatement 쿼리를 사용하는 이유

  - 반복해서 실행되는 쿼리 속도 증가

  - 값 변환을 자동으로 하기 위해

  - 간결한 코드를 위해


@ Connection Pool

  - Connection이 생성디어 있기 때문에 Connection을 생성하는데 드는 연결 시간이 소비되지 않는다.

  - Connection을 계속해서 재사용하기 떄문에 생성되는 Connection 수가 많지 않다.


DataSource ds;
 
 private OracleDAO() {

  try
  {
   //기본적으로 개발는 환경을 만들고
   Context initContext = new InitialContext();
 
   //커넷션 풀을 가지고 옴
   ds = (DataSource)initContext.lookup("java:/comp/env/jdbc/myJdbc");
   System.out.println("Context를 가지고 옴");
  }
  catch(NamingException ne){}
 

Posted by 행복한 프로그래머 궁금쟁이박
TAG

댓글을 달아 주세요