SPATIUM Mobile
주소복사
About Operating System Languages Tools Favorites Notice Visit TEST  
     ADK (3)
     android (3)
     ASP (5)
     ASP.Net (1)
     C# (5)
     HTML (9)
     JAVA (7)
     JavaScript (9)
     jQuery (5)
     Mobile Web (2)
     node.js (1)
     Oracle (8)
     PHP (7)
     Spring Framework (4)
     SQL (17)
     WPF (5)
   ID  
   Password  
  |  
  Location United States
  IP Address 3.145.10.80
2024. 11
12
3456789
10111213141516
1718192021
22
23
24252627282930
Category  Languages, JAVA
Writer 김태우 Date 2018-04-12 16:47:35 Visit 3177
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