source

ODBC를 사용하지 않고 Java에서 접근 데이터베이스 조작

goodcode 2022. 9. 3. 13:17
반응형

ODBC를 사용하지 않고 Java에서 접근 데이터베이스 조작

Java 프로젝트에서 Microsoft Access 데이터베이스(.accdb 또는 .mdb 파일)를 조작하고 싶다.Microsoft의 JDBC-ODBC Bridge 및 Access ODBC 드라이버를 사용하지 않는 이유는 다음과 같습니다.

  • JDBC-ODBC 브릿지는 Java SE 8에서 삭제되어 지원되지 않습니다(참조:여기서).
  • 텍스트에 코드 포인트가 U+00FF 이상인 Unicode 문자(여기 참조)가 포함되어 있는 경우 JDBC-ODBC Bridge는 Access ODBC 드라이버에서 올바르게 동작하지 않기 때문에 그리스어, 러시아어, 중국어, 아랍어 등의 문자를 처리할 수 없습니다.
  • Microsoft의 Access ODBC 드라이버는 Windows에서만 작동합니다.
  • Access Database Engine(및 ODBC 드라이버)에는 별도의 32비트 버전과 64비트 버전이 있어 배포에 방해가 될 수 있습니다.

UCanAccess라는 이름의 Access 데이터베이스용 JDBC 드라이버를 언급하는 다른 답변을 본 적이 있습니다.이 방법을 사용하도록 Java 프로젝트를 설정하려면 어떻게 해야 합니까?

(Java에서 Access 데이터베이스로 작업하기 위한 더 나은 방법을 제안하는 답변도 매우 환영합니다.)

UCanAccess는 순수 Java JDBC 드라이버로 ODBC를 사용하지 않고도 Access 데이터베이스에서 읽고 쓸 수 있습니다.이러한 작업을 수행하기 위해 Jackaccess와 HSQLDB라는 다른 2개의 패키지를 사용합니다.다음은 셋업 방법에 대한 간단한 개요입니다.

 

옵션 1: Maven 사용

프로젝트에서 Maven을 사용하는 경우 다음 좌표를 통해 UCanAccess를 포함할 수 있습니다.

groupId:net.sf.ucanaccess
attactId: ucanaccess

다음은 에서 발췌한 것입니다.pom.xml의 갱신이 필요할 수 있습니다.<version>최신 릴리스를 입수하려면:

  <dependencies>
    <dependency>
        <groupId>net.sf.ucanaccess</groupId>
        <artifactId>ucanaccess</artifactId>
        <version>4.0.4</version>
    </dependency>
  </dependencies>

 

옵션 2: 프로젝트에 JAR 수동 추가

앞서 설명한 바와 같이 UCan Access에는 Jackaccess와 HSQLDB가 필요합니다.Jackaccess에는 독자적인 의존관계가 있습니다.따라서 UCan Access를 사용하려면 다음 컴포넌트를 포함해야 합니다.

UCan Access(ucanaccess-x.x.jar)
HSQLDB(hsqldb.jar, 버전 2.2.5 이후)
잭세스(jackcess-2.x.jar)
commons-displays (commons-displays-2.6.jar 또는 새로운 2.x 버전)
commons-displays(commons-displays-1.1.jar 또는 그 이후의 1.x 버전)

다행히 UCanAccess는 배포 파일에 필요한 모든 JAR 파일을 포함합니다.압축을 풀면 다음과 같은 것을 볼 수 있습니다.

ucanaccess-4.0.1.jar  
  /lib/
    commons-lang-2.6.jar  
    commons-logging-1.1.1.jar  
    hsqldb.jar  
    jackcess-2.1.6.jar

5개의 JAR을 모두 프로젝트에 추가하기만 하면 됩니다.

메모: 추가 안 함loader/ucanload.jar다른 5개의 JAR 파일을 추가할 경우 빌드 경로에 추가합니다.UcanloadDriver클래스는 특수한 상황에서만 사용되며 다른 설정이 필요합니다.자세한 내용은 여기를 참조하십시오.

이클립스:패키지 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고Build Path > Configure Build Path...외부 JAR 추가...(JARs는...) JARs 5는 JAR입니다.는 다음과 .

BuildPath.png

NetBeans: 프로젝트의 트리 뷰를 확장하고 "라이브러리" 폴더를 오른쪽 클릭하여 "JAR/폴더 추가..."를 선택한 후 JAR 파일을 찾습니다.

nbAddJar.png

5개의 JAR 파일을 모두 추가하면 "Libraries" 폴더는 다음과 같습니다.

nb라이브러리

IntelliJ 아이디어:선택하세요.File > Project Structure...를 선택합니다.라이브러리])를 합니다.+JAR 5번지같이 .

인텔리J.png

 

바로 그거야!

다음과 같은 코드를 사용하여 .accdb 및 .mdb 파일의 데이터에 액세스할 수 있습니다.

// assumes...
//     import java.sql.*;
Connection conn=DriverManager.getConnection(
        "jdbc:ucanaccess://C:/__tmp/test/zzz.accdb");
Statement s = conn.createStatement();
ResultSet rs = s.executeQuery("SELECT [LastName] FROM [Clients]");
while (rs.next()) {
    System.out.println(rs.getString(1));
}

 

공개

이 Q&A를 작성했을 때는 UCan Access 프로젝트에 관여하거나 관여하지 않았습니다.그냥 사용했을 뿐입니다.그 후, 저는 그 프로젝트에 공헌하고 있습니다.

언급URL : https://stackoverflow.com/questions/21955256/manipulating-an-access-database-from-java-without-odbc

반응형