SPATIUM Mobile
주소복사
About Operating System Languages Tools Favorites Notice Visit TEST  
     Android (3)
     Linux (1)
     MacOS (1)
     OS (1)
     Solaris10 (15)
     Windows (1)
     Windows Server (2)
     Windows XP (3)
   ID  
   Password  
  |  
  Location United States
  IP Address 18.226.93.138
2024. 11
12
3456789
10111213141516
17181920212223
24
25
2627282930
Category  Languages, JAVA
Writer 김태우 Date 2018-04-12 16:47:35 Visit 3182
JAVA JDBC/DBCP/JNDI

■ JDBC(Java Database Connectivity) 란?

  * 자바에서 데이터베이스에 접속할 수 있도록 하는 자바 API이다. 

  * JDBC는 데이터베이스에서 자료를 쿼리하거나 업데이트하는 방법을 제공한다.

 

■ JNDI(Java Naming and Directory Interface) 란?

  * 디렉터리 서비스에서 제공하는 데이터 및 객체를 발견(discover)하고 참고(lookup)하기 위한 자바 API다.

  * NDI는 일반적으로 다음의 용도로 쓰인다.

    - 자바 애플리케이션을 외부 디렉터리 서비스에 연결 (예: 주소 데이터베이스 또는 LDAP 서버)

    - 자바 애플릿이 호스팅 웹 컨테이너가 제공하는 구성 정보를 참고

 

■ DBCP(Database Connection Pool, 커넥션 풀) 란?

  * 데이터베이스와 연결된 커넥션을 미리 만들어서 저장해두고 필요할 때 가져다 쓰고 반환하는 기법

 

[참고] pom.xml


            org.mybatis
            mybatis
            3.4.4
        
 
        
            org.mybatis
            mybatis-spring
            1.3.1
        
 
        
            org.springframework
            spring-jdbc
            ${org.springframework-version}
        
 
        
            org.springframework
            spring-test
            ${org.springframework-version}
        
 
        
            commons-dbcp
            commons-dbcp
            1.4
  

--//

[참고] root-context.xml

<bean class="org.apache.commons.dbcp.BasicDataSource" id="dataSource">
        <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
        <property name="url" value="jdbc:mysql://127.0.0.1:3306/javatest?useSSL=false"/>
        <property name="username" value="root"/>
        <property name="password" value="1234"/>
        <property name="initialSize" value="100"/>
        <property name="maxActive" value="150"/>
        <property name="maxWait" value="10000"/>
        <property name="maxIdle" value="30"/>
        <property name="minIdle" value="20"/>
        <property name="testOnBorrow" value="true/">
        <property name="testOnReturn" value="true"/>
        <property name="validationQuery" value="select 1 from dual"/>
        <property name="testWhileIdle" value="true"/>
        <property name="timeBetweenEvictionRunsMillis" value="130000"/>
        <property name="minEvictableIdleTimeMillis" value="120000"/>
        <property name="numTestsPerEvictionRun" value="20"/>
        <property name="removeAbandonedTimeout" value="30"/>
        <property name="removeAbandoned" value="true"/>
        <property name="logAbandoned" value="false"/>

--//

* 정의한 값
1. initialSize : 풀의 초기 커넥션 갯수
2. maxActive : 최대 커넥션 갯수
3. maxWait : 커넥션이 존재하지 않을 때, 커넥션을 얻기까지 대기하는 최대 대기시간
4. maxIdle : Idle상태에 풀이 소유한 최대 커넥션 갯수
5. testOnBorrow : 풀에서 커넥션을 가져올시 커넥션의 유효성 검사
6. testOnReturn : 풀에 커넥션을 리턴할 때 커넥션의 유효성 검사
7. validationQuery : validate Query
8. testWhileIdle : Idle상태에 커넥션의 유효성 검사
9. timeBetweenEvictionRunsMillis : 설정된 주기를 통해 Evict(유효하지 않는 커넥션/정의된 시간이 만료된 커넥션을 풀에서 제거) 쓰레드를 수행
10. minEvictableIdleTimeMiilis : Evict 쓰레드를 수행시, 만료여부를 체크할 시간을 정의
11. numTestsPerEvictionRun : Evict 쓰레드를 수행시 수행할 커넥션의 갯수
12. removeAbandonedTimeout : 유효하지 안흔 커넥션의 삭제시의 타임아웃
13. removeAbandoned : 유효하지 않는 커넥션의 제거 여부
14. logAbandoned : 유효하지 않는 커넥션을 생성한 코드 위치 로그생성 여부

 

 

Tags  JDBC, DBCP, JNDI
  Relation Articles
[Languages-JAVA] JAVA JDBC/DBCP/JNDI (2018-04-12 16:47:35)
  Your Opinion
Member ID
150 letters
Copyright (C) SPATIUM. All rights reserved.
[SPATIUM]WebMaster Mail