13.2. JDBC 드라이버


애플리케이션에서 사용할 데이터 소스를 JBoss EAP에 정의하기 전에 먼저 적절한 JDBC 드라이버를 설치해야 합니다.

13.2.1. JDBC 드라이버를 코어 모듈로 설치

다음 단계를 사용하여 관리 CLI를 사용하여 JDBC 드라이버를 코어 모듈로 설치할 수 있습니다.

  1. JDBC 드라이버를 다운로드합니다.

    데이터베이스 벤더에서 적절한 JDBC 드라이버를 다운로드합니다. 공통 데이터베이스의 JDBC 드라이버에 대한 표준 다운로드 위치는 JDBC 드라이버 다운로드 위치를 참조하십시오.

    JDBC 드라이버 JAR 파일이 ZIP 또는 TAR 아카이브에 포함된 경우 아카이브를 추출해야 합니다.

  2. JBoss EAP 서버를 시작합니다.
  3. 관리 CLI를 시작하지만 --connect 또는 -c 인수를 사용하여 실행 중인 인스턴스에 연결하지 마십시오.

    Copy to Clipboard Toggle word wrap
    $ EAP_HOME/bin/jboss-cli.sh
  4. 모듈 추가 관리 CLI 명령을 사용하여 새 코어 모듈을 추가합니다.

    Copy to Clipboard Toggle word wrap
    module add --name=MODULE_NAME --resources=PATH_TO_JDBC_JAR --dependencies=DEPENDENCIES

    예를 들어 다음 명령은 MySQL JDBC 드라이버 모듈을 추가합니다.

    Copy to Clipboard Toggle word wrap
    module add --name=com.mysql --resources=/path/to/mysql-connector-java-5.1.36-bin.jar --dependencies=javax.api,javax.transaction.api
    중요

    모듈 관리 CLI 명령을 사용하여 모듈을 추가 및 제거하는 것은 기술 프리뷰로 만 제공됩니다. 이 명령은 관리형 도메인에서 사용하거나 관리 CLI에 원격으로 연결할 때 적합하지 않습니다. 모듈은 프로덕션 환경에서 수동으로 추가제거해야 합니다.

    이 명령을 사용하여 모듈을 추가 및 제거하는 방법에 대한 자세한 내용은 module --help 를 실행합니다.

  5. 연결 관리 CLI 명령을 사용하여 실행 중인 인스턴스에 연결합니다.

    Copy to Clipboard Toggle word wrap
    connect
  6. JDBC 드라이버를 등록합니다. 관리형 도메인에서 실행하는 경우 이 명령 앞에 /profile=PROFILE_NAME 이어야 합니다.

    Copy to Clipboard Toggle word wrap
    /subsystem=datasources/jdbc-driver=DRIVER_NAME:add(driver-name=DRIVER_NAME,driver-module-name=MODULE_NAME,driver-xa-datasource-class-name=XA_DATASOURCE_CLASS_NAME, driver-class-name=DRIVER_CLASS_NAME)
    참고

    driver-class-name 매개변수는 JDBC 드라이버에서 /META-INF/services/java.sql.Driver 파일에서 두 개 이상의 클래스를 정의하는 경우에만 필요합니다.

    예를 들어 MySQL 5.1.36 JDBC 드라이버 JAR의 /META-INF/services/java.sql.Driver 파일은 다음 두 개의 클래스를 정의합니다.

    • com.mysql.jdbc.Driver
    • com.mysql.fabric.jdbc.FabricMySQLDriver

    이 경우 driver-class-name=com.mysql.jdbc.Driver 를 전달합니다.

    예를 들어 다음 명령은 MySQL JDBC 드라이버를 등록합니다.

    Copy to Clipboard Toggle word wrap
    /subsystem=datasources/jdbc-driver=mysql:add(driver-name=mysql,driver-module-name=com.mysql,driver-xa-datasource-class-name=com.mysql.jdbc.jdbc2.optional.MysqlXADataSource, driver-class-name=com.mysql.jdbc.Driver)

이제 애플리케이션 데이터 소스에서 JDBC 드라이버를 참조할 수 있습니다.

13.2.2. JAR 배포로 JDBC 드라이버 설치

JDBC 드라이버는 관리 CLI 또는 관리 콘솔을 사용하여 JAR 배포로 설치할 수 있습니다. 드라이버가 JDBC 4를 준수하는 한 배포 시 JDBC 드라이버로 자동 인식 및 설치됩니다.

다음 단계에서는 관리 CLI를 사용하여 JDBC 드라이버를 설치하는 방법을 설명합니다.

참고

JDBC 드라이버에 권장되는 설치 방법은 코어 모듈로 설치하는 것입니다.

  1. JDBC 드라이버를 다운로드합니다.

    데이터베이스 벤더에서 적절한 JDBC 드라이버를 다운로드합니다. 공통 데이터베이스의 JDBC 드라이버에 대한 표준 다운로드 위치는 JDBC 드라이버 다운로드 위치를 참조하십시오.

    JDBC 드라이버 JAR 파일이 ZIP 또는 TAR 아카이브에 포함된 경우 아카이브를 추출해야 합니다.

  2. JDBC 드라이버가 JDBC 4와 호환되지 않는 경우 JDBC 드라이버 JAR를 JDBC 4 호환으로 업데이트하는 단계를 참조하십시오.
  3. JAR을 JBoss EAP에 배포합니다.

    Copy to Clipboard Toggle word wrap
    deploy PATH_TO_JDBC_JAR
    참고

    관리형 도메인에서 적절한 서버 그룹을 지정합니다.

    예를 들어 다음 명령은 MySQL JDBC 드라이버를 배포합니다.

    Copy to Clipboard Toggle word wrap
    deploy /path/to/mysql-connector-java-5.1.36-bin.jar

    데이터 소스를 정의할 때 사용할 배포된 드라이버 이름을 표시하는 JBoss EAP 서버 로그에 메시지가 표시됩니다.

    Copy to Clipboard Toggle word wrap
    WFLYJCA0018: Started Driver service with driver-name = mysql-connector-java-5.1.36-bin.jar_com.mysql.jdbc.Driver_5_1

이제 애플리케이션 데이터 소스에서 JDBC 드라이버를 참조할 수 있습니다.

JDBC 드라이버 JAR을 JDBC 4 호환으로 업데이트

JDBC 드라이버 JAR이 JDBC 4와 호환되지 않는 경우 다음 단계를 사용하여 배포할 수 있습니다.

  1. 비어 있는 임시 디렉토리를 만듭니다.
  2. META-INF 하위 디렉터리를 만듭니다.
  3. META-INF/services 하위 디렉터리를 만듭니다.
  4. META-INF/services/java.sql.Driver 파일을 생성하고 한 행을 추가하여 JDBC 드라이버의 정규화된 클래스 이름을 표시합니다.

    예를 들어, MySQL JDBC 드라이버에 대한 아래 행이 추가됩니다.

    Copy to Clipboard Toggle word wrap
    com.mysql.jdbc.Driver
  5. JAR 명령줄 툴을 사용하여 이 새 파일을 JAR에 추가합니다.

    Copy to Clipboard Toggle word wrap
    jar \-uf jdbc-driver.jar META-INF/services/java.sql.Driver

13.2.3. JDBC 드라이버 다운로드 위치

다음 표는 JBoss EAP와 함께 사용되는 공통 데이터베이스의 JDBC 드라이버에 대한 표준 다운로드 위치를 제공합니다.

참고

이러한 링크는 Red Hat에서 제어하거나 적극적으로 모니터링하지 않는 타사 웹 사이트를 가리킵니다. 데이터베이스에 대한 최신 드라이버의 경우 데이터베이스 공급 업체의 문서 및 웹 사이트를 확인하십시오.

표 13.1. JDBC 드라이버 다운로드 위치
vendor위치 다운로드

MySQL

http://www.mysql.com/products/connector/

PostgreSQL

http://jdbc.postgresql.org/

Oracle

http://www.oracle.com/technetwork/database/features/jdbc/index-091264.html

IBM

http://www-306.ibm.com/software/data/db2/java/

Sybase

jConnect JDBC 드라이버는 SAP ASE 설치를 위한 SDK의 일부입니다. 현재 이 드라이버에 대한 별도의 다운로드 사이트는 자체적으로 없습니다.

Microsoft

http://msdn.microsoft.com/data/jdbc/

13.2.4. Vendor-Specific 클래스에 액세스

경우에 따라 애플리케이션에서 JDBC API의 일부가 아닌 벤더별 기능을 사용해야 합니다. 이러한 경우 해당 애플리케이션에 종속성을 선언하여 벤더별 API에 액세스할 수 있습니다.

주의

이것은 고급 사용법입니다. JDBC API에서 찾을 수 없는 기능이 필요한 애플리케이션만 이 절차를 구현해야 합니다.

중요

이 프로세스는 재인증 메커니즘을 사용하고 벤더별 클래스에 액세스하는 경우 필요합니다.

MANIFEST.MF 파일 또는 jboss-deployment-structure.xml 파일을 사용하여 애플리케이션에 대한 종속성을 정의할 수 있습니다.

아직 수행하지 않은 경우 JDBC 드라이버를 코어 모듈로 설치합니다.

MANIFEST.MF 파일 사용
  1. 애플리케이션의 META-INF/MANIFEST.MF 파일을 편집합니다.
  2. Dependencies 행을 추가하고 모듈 이름을 지정합니다.

    예를 들어 아래 줄은 com.mysql 모듈을 종속성으로 선언합니다.

    Copy to Clipboard Toggle word wrap
    Dependencies: com.mysql
jboss-deployment-structure.xml 파일 사용
  1. 애플리케이션의 META-INF/ 또는 article- INF/ 폴더에 jboss-deployment- structure.xml 이라는 파일을 생성합니다.
  2. dependencies 요소를 사용하여 모듈을 지정합니다.

    예를 들어 다음 예제 jboss-deployment-structure.xml 파일은 com.mysql 모듈을 종속성으로 선언합니다.

    Copy to Clipboard Toggle word wrap
    <jboss-deployment-structure>
      <deployment>
        <dependencies>
          <module name="com.mysql"/>
        </dependencies>
      </deployment>
    </jboss-deployment-structure>

아래 예제 코드는 MySQL API에 액세스합니다.

Copy to Clipboard Toggle word wrap
import java.sql.Connection;
import org.jboss.jca.adapters.jdbc.WrappedConnection;

...

Connection c = ds.getConnection();
WrappedConnection wc = (WrappedConnection)c;
com.mysql.jdbc.Connection mc = wc.getUnderlyingConnection();
중요

벤더별 API 지침을 따르십시오. 연결이 CryostatJacamar 컨테이너에 의해 제어되기 때문입니다.

맨 위로 이동
Red Hat logoGithubredditYoutubeTwitter

자세한 정보

평가판, 구매 및 판매

커뮤니티

Red Hat 문서 정보

Red Hat을 사용하는 고객은 신뢰할 수 있는 콘텐츠가 포함된 제품과 서비스를 통해 혁신하고 목표를 달성할 수 있습니다. 최신 업데이트를 확인하세요.

보다 포괄적 수용을 위한 오픈 소스 용어 교체

Red Hat은 코드, 문서, 웹 속성에서 문제가 있는 언어를 교체하기 위해 최선을 다하고 있습니다. 자세한 내용은 다음을 참조하세요.Red Hat 블로그.

Red Hat 소개

Red Hat은 기업이 핵심 데이터 센터에서 네트워크 에지에 이르기까지 플랫폼과 환경 전반에서 더 쉽게 작업할 수 있도록 강화된 솔루션을 제공합니다.

Theme

© 2025 Red Hat, Inc.