2010년 7월 12일 월요일

JDBC와 DAO

JDBC

 

 1. Java DataBase Connectivity
  - 자바의 표준 DB접속 방법
  - DataBase와 독립적인 구현
 
 2. JDBC Driver Type
  - type1 : JDBC-ODBC 브리지(UserCode -> JDBC -> JDBC-ODBC -> ODBC -> DB)
  - type2 : native API Driver (UserCode -> JDBC -> DB library(native) -> DB)
  - type3 : network-protocol driver (UserCode -> JDBC -> DB Midleware -> DB)
  - type4 : native protocol driver (UserCode -> JDBC -> DB)
  
 3. JDBC Spec.
  - 커넥션, SQL 질의 및 파라미터, 결과의 수신,
  - 기본 매핑(SQL Type & Java Type), 메타데이터 제공, 트랜잭션, 로깅 등
  
 4. 커넥션 방법
  - DriverManager로 접속하는 방법
    Driver 로딩 : Class.forName("com.driver.class.name");
    DriverManager로 커넥션 획득 : DriverManage.getConnection("접속정보");
   
  - javax.sql.DataSource(JDBC 2.0)
    WAS start(DataSOurce Configuration) -> Referenceable -> JNDI
    Context.lookup(UserCode <-> JNDI <-> DataSources)
    DataSource.getConnection(UserCode <-> DataSource)
   
  - PooledDataSource
    UserCode <-> Pooled Connection <-> ConnectionPool <-> PoolingDataSource

 

Data Access Layer

 

 1. DAO FrameWorks
   - JDBC Templates
   - SQL Mappers
   - OR Mappers
  
 2. JDBC Templates
   자주 사용하는 표준적인 DB접근, 질의 등을 템플릿 형태로 사용함
   장점 - 쉽다, 설정필요이 따로 필요 없다
   단점 - 코드안에 모든내용포함 된다, 코드가독성이 낮다, DB 의존적이다
  
 3. SQL Mappers
   쿼리 등을 외부로 빼내고 쿼리에 대한 결과를 매핑해주는 기능으로 bean에 결과를 매핑한다.
   장점 - 코드가 줄어듦, 배우는게 쉽다, 코드와 쿼리가 분리된다
   단점 - XML설정이 필요하다, DB에 의존적이다
  
 4. OR Mappers
   테이블의 Row를 하나의 객체로 인식하고자 함
   설정을 통해서 테이블과 클래스, Row와 인스턴스를 연결하고 객체만을 사용
   장점 - 코드가 줄어듦, 직관적이다, 쿼리와 DB의존적이지 않다
   단점 - XML설정이 필요하다, 배우기 어렵다
  

댓글 없음:

댓글 쓰기