ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • DB jdbc
    IT/정리 2020. 3. 27. 07:24

    1. 보통 웹 애플리케이션이 실행됨과 동시에 연동할 데이터베이스와의 연결을 미리 설정해두며 연결 상태를 유지함 (커넥션풀, ConnectionPool)

    2. 즉, 

        - 애플리케이션 실행 시 미리 ConnectionPool 객체를 생성한 후 DB와 연결 맺음

        - 애플리케이션은 DB 연동 작업 발생 시 이 ConnectionPool 객체를 이용하여 작업 수행

    3. 일반적으로 ConnectionPool 객체를 구현할 때 Java SE에서 제공하는 javax.sql.DataSource 클래스를 이용하며, 톰캣이 만들어 놓은 ConnectionPool 객체에 접근할 때 JNDI를 사용함

    4. 톰캣 내 context.xml 파일의 <Resource> 태그를 이용하여 톰캣 실행 시 연결할 DB 설정함

        <Resource
         name="jdbc/oracle"
         auth="Container"
         type="javax.sql.DataSource"
         driverClassName="oracle.jdbc.OracleDriver"
         url="jdbc:oracle:thin:@localhost:1521:XE"
         username="scott"
         password="tiger"
         maxActive="50"
         maxWait="-1"
        >
        </Resource>

     name="jdbc/oracle"     // name의 jdbc/oracle 로 DataSource에 접근 (JNDI이름)

     driverClassName="oracle.jdbc.OracleDriver"     // 연결할 데이터베이스 종류에 따른 드라이버 클래스 이름

     url="jdbc:oracle:thin:@localhost:1521:XE"     // 접속할 데이터베이스 주소와 포트번호 및 SID 

    * 덧)

    여기서 jdbc:oracle:thin:@localhost:1521:XE 이 부분이 가장 궁금했는데

    - @localhost:1521:XE

      => 위에 적힌대로 DB주소:포트번호:SID 로 보면 됨 (SID는 오라클의 경우 tnsnames.ora에 SERVICE_NAME)

    - jdbc:oracle:thin

      => 오라클의 드라이버 정보이며 자세한 것은 하단 출처의  'DB별 드라이버 정보' 에서 확인

      => 오라클 드라이버의 경우 thin과 oci 두 가지가 있으며 oci는 C/C++ 형태의 라이브러리, thin은 java 형태의 라이브러리이며 자세한 것은 하단 출처의 'oci, thin 드라이버 차이' 에서 확인

     maxActive="50"     // 최대 active connection 갯수

    maxWait="-1"     // connection pool이 비었을 경우 대기시간 (단위 1/1000초), 기본값 -1(무한대)

        => 자세한 것은 하단 출처의 'Resource 내 속성 의미' 에서 확인

     

    출처:

    DB별 드라이버 정보 => https://tibang.tistory.com/454

    Resource 내 속성 의미 => https://soul0.tistory.com/219

    oci, thin 드라이버 차이 => https://blog.naver.com/kletgdgo/90091963113

    'IT > 정리' 카테고리의 다른 글

    [인증] PKI  (0) 2020.11.30
    [Servlet] cannot be cast to javax.servlet.Servlet  (0) 2020.04.22
    웹 애플리케이션 모델  (0) 2020.04.21
    [springBoot] 서버 템플릿 엔진과 머스테  (0) 2020.02.16
    용어정리  (0) 2020.01.29

    댓글

Designed by Tistory.