컴퓨터 지식 네트워크 - 컴퓨터 구성 - spring4에서 oracle 데이터 소스를 구성하려면 어떤 드라이버가 필요합니까?

spring4에서 oracle 데이터 소스를 구성하려면 어떤 드라이버가 필요합니까?

어떤 지속성 기술을 사용하든 데이터 소스를 정의해야 합니다. Spring은 Spring 자체 데이터 소스(DriverManagerDataSource), DBCP 데이터 소스, C3P0 데이터 소스, JNDI 데이터 소스 등 4가지 형태의 데이터 소스 구성 방법을 제공합니다.

1. Spring 자체 데이터 소스

DriverManagerDataSource

XML 코드:

[html] 일반 복사본 보기

lt;bean id="dataSource"

class="org.springframework.jdbc.datasource.DriverManagerDataSource"gt;

lt;property name="driverClassName" value= "oracle .jdbc.driver.OracleDriver" /gt;

lt;property name="url" value="jdbc:oracle:thin:@172.19.34.6:1521:ORCL" /gt;

p>

lt;property name="username" value="orclight" /gt;

lt;property name="password" value="123456" /gt;

lt;/beangt;

2. DBCP 데이터 소스

DBCP 구성은 2개의 jar 패키지 commons-dbcp.jar 및 commons-pool.jar에 따라 다릅니다.

XML 코드:

[html] 일반 사본 보기

lt; bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource "

destroy-method="close"gt;

lt;property name="driverClassName" value="oracle.jdbc.driver.OracleDriver" /gt;

lt;property name="url" value="jdbc:oracle:thin:@172.19.34.6:1521:ORCL" /gt;

lt;property name="username" value=" orclight" /gt;

lt;property name="password" value="123456" /gt;

lt;/beangt;

위 코드 설명:

BasicDataSource는 데이터 소스를 닫는 close() 메소드를 제공하므로 Spring 컨테이너가 닫힐 때 데이터 소스가 정상적으로 닫힐 수 있도록 destroy-method="close" 속성을 설정해야 합니다. .

위의 필수 데이터 소스 속성 외에도 일반적으로 사용되는 속성도 있습니다.

defaultAutoCommit: 데이터 소스에서 반환된 연결이 자동 제출 메커니즘을 사용하는지 여부를 설정합니다. 기본값은 true입니다. p>

defaultReadOnly: 데이터 소스가 읽기 전용 작업만 수행할 수 있는지 여부를 설정합니다. 기본값은 false입니다.

maxActive: 0으로 설정하면 최대 데이터베이스 연결 수가 있음을 의미합니다.

maxIdle: 최대 대기 연결 수입니다. 0으로 설정하면 제한이 없음을 의미합니다.

maxWait: 최대 대기 시간(초)입니다. 시간을 초과하면 오류 메시지가 보고됩니다.

validationQuery: 연결 성공 여부를 확인하는 데 사용되는 쿼리 SQL 문입니다. 예를 들어, SQL 문은 다음과 같습니다. 간단히 다음과 같이 설정할 수 있습니다: "사용자로부터 개수(*) 선택";

removeAbandoned: 자체 중단 여부, 기본값은 false입니다.

removeAbandonedTimeout: 데이터 연결은 몇 초 후에 자동으로 연결이 끊어집니다. RemoveAbandoned가 true인 경우 이 값을 제공하세요.

logAbandoned: 중단 이벤트를 기록할지 여부, 기본값은 false입니다.

3.C3P0 데이터 소스

C3P0은 오픈 소스 JDBC 데이터 소스 구현 프로젝트로 jar 패키지 c3p0.jar에 의존합니다.

XML 코드:

[html] 일반 사본 보기

lt; bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource "

destroy-method="close"gt;

lt;property name="driverClass" value=" oracle.jdbc.driver.OracleDriver "/gt;

lt;property name="jdbcUrl" value="jdbc:oracle:thin:@172.19.34.6:1521:ORCL"/gt;

lt;property name="user" value=" orclight"/gt;

lt;property name="password" value="123456"/gt;

lt;/beangt;

ComboPooledDataSource 및 BasicDataSource 또한 데이터 소스를 닫는 close() 메서드를 제공하므로 Spring 컨테이너가 닫힐 때 데이터 소스가 성공적으로 해제될 수 있습니다.

C3P0은 DBCP보다 더 풍부한 구성 속성을 가지고 있으며 이러한 속성을 통해 데이터 소스에 대해 다양한 효과적인 제어를 수행할 수 있습니다.

acquireIncrement: 연결 풀의 연결이 모두 사용된 경우. , 한 번에 C3P0에 의해 생성된 새 연결 수

acquireRetryAttempts: 데이터베이스에서 새 연결을 얻지 못한 후 새 연결을 얻으려는 반복 시도 횟수를 정의합니다. 기본값은 30입니다. /p>

acquireRetryDelay: 두 개의 연결 중간 간격(밀리초), 기본값은 1000입니다.

autoCommitOnClose: 기본적으로 연결이 닫힐 때 커밋되지 않은 모든 작업이 롤백됩니다.

기본값은 false입니다.

automaticTestTable: C3P0은 Test라는 빈 테이블을 생성하고 테스트를 위해 자체 쿼리 문을 사용합니다. 이 매개변수가 정의되면 PreferredTestQuery 속성이 무시됩니다. 이 테스트 테이블에서는 어떤 작업도 수행할 수 없습니다. C3P0 테스트에 사용되며 기본값은 null입니다.

breakAfterAcquireFailure: 연결 획득에 실패하면 연결 획득을 기다리는 모든 스레드가 예외를 발생시킵니다. 그러나 데이터 소스는 여전히 유효하며 다음에 getConnection()이 호출될 때 계속해서 연결을 얻으려고 시도합니다. true로 설정하면 연결을 얻으려는 시도가 실패한 후 데이터 소스가 연결 해제되고 영구적으로 닫히는 것으로 선언됩니다. 기본값은 false입니다.

checkoutTimeout: 연결 풀이 모두 사용되면 클라이언트는 시간 초과 후 SQLException이 발생합니다. 0, 무한정 대기합니다. 단위는 밀리초이고 기본값은 0입니다.

connectionTesterClassName: ConnectionTester 또는 QueryConnectionTester를 구현하는 클래스를 구현하여 연결을 테스트합니다. 클래스 이름은 정규화된 이름으로 설정되어야 합니다. 기본값은 com.mchange.v2.C3P0.impl.DefaultConnectionTester입니다.

idleConnectionTestPeriod: 모든 연결 풀에서 유휴 연결을 확인하는 시간(초)입니다. 기본값은 0이며, 이는 확인하지 않음을 의미합니다.

initialPoolSize : 초기화 시 생성된 연결 수로 minPoolSize와 maxPoolSize 사이의 값이어야 합니다. 기본값은 3입니다.

maxIdleTime: 최대 유휴 시간을 초과하는 연결은 삭제됩니다. 0 또는 음수이면 절대 폐기되지 않습니다. 기본값은 0입니다.

maxPoolSize: 연결 풀에 유지되는 최대 연결 수입니다. 기본값은 15입니다.

maxStatements: 데이터 소스에 로드되는 ReadyStatements의 수를 제어하는 ​​JDBC의 표준 매개변수입니다. 그러나 사전 캐시된 명령문은 전체 연결 풀이 아닌 단일 연결에 속하기 때문입니다. 따라서 이 매개변수를 설정할 때 많은 요소를 고려해야 합니다. maxStatements 및 maxStatementsPerConnection이 모두 0이면 캐시가 꺼집니다. 기본값은 0입니다.

maxStatementsPerConnection: 연결 풀의 단일 연결이 소유한 캐시된 문의 최대 수입니다. 기본값은 0입니다.

numHelperThreads: C3P0은 비동기적으로 작동하며 느린 JDBC 작업은 도우미 프로세스를 통해 완료됩니다. 이러한 작업을 확장하면 성능이 효과적으로 향상되고 멀티스레딩을 통해 여러 작업을 동시에 실행할 수 있습니다. 기본값은 3입니다.

preferredTestQuery: 모든 연결 테스트에서 실행되는 테스트 문을 정의합니다. 이 매개변수는 연결 테스트를 사용할 때 테스트 속도를 크게 향상시킬 수 있습니다. 테스트 테이블은 초기 데이터 소스에 존재해야 합니다. 기본값은 null입니다.

propertyCycle: 시스템 구성 매개변수를 수정하기 전에 사용자가 기다리는 최대 시간(초)입니다. 기본값은 300입니다.

testConnectionOnCheckout: 성능 소모가 높으므로 필요할 때만 사용하세요. true로 설정하면 제출 시 각 연결의 유효성이 확인됩니다.

연결 테스트 성능을 향상시키려면dleConnectionTestPeriod 또는 automaticTestTable

과 같은 방법을 사용하는 것이 좋습니다. 기본값은 false입니다.

testConnectionOnCheckin: true로 설정하면 연결을 얻는 동안 연결의 유효성이 확인됩니다. 기본값은 거짓입니다.

4.JNDI 데이터 소스

애플리케이션이 고성능 애플리케이션 서버(예: WebLogic 또는 Websphere, Tomcat 등)에 구성된 경우 다음을 사용하는 것이 더 나을 수 있습니다. 애플리케이션 서버 자체 소스에서 제공하는 데이터입니다. 애플리케이션 서버의 데이터 소스는 JNDI를 사용하는 호출자에게 공개됩니다. Spring은 특히 JNDI 자원을 참조하는 JndiObjectFactoryBean 클래스를 제공합니다.

xml 코드:

[html] 일반 사본 보기

lt; bean id="dataSource" class="org.springframework.jndi.JndiObjectFactoryBean"gt; ;

lt;속성 이름="jndiName" value="java:comp/env/jdbc/orclight"/gt;

lt;/beangt;

[html] 일반 사본 보기

lt;beans xmlns=p/env/jdbc/orclight"/gt;

lt;/beansgt;

上篇: 증기 흐름의 의미는 무엇입니까? 下篇: Microsoft Office2003 무료 버전 다운로드
관련 내용