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입니다.는 다음과 .
NetBeans: 프로젝트의 트리 뷰를 확장하고 "라이브러리" 폴더를 오른쪽 클릭하여 "JAR/폴더 추가..."를 선택한 후 JAR 파일을 찾습니다.
5개의 JAR 파일을 모두 추가하면 "Libraries" 폴더는 다음과 같습니다.
IntelliJ 아이디어:선택하세요.File > Project Structure...
를 선택합니다.라이브러리])를 합니다.+
JAR 5번지같이 .
바로 그거야!
다음과 같은 코드를 사용하여 .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
'source' 카테고리의 다른 글
Java에 힙이 있나요? (0) | 2022.09.03 |
---|---|
Vue JS에서 구성 요소를 동적으로 렌더링하는 방법 (0) | 2022.09.03 |
ArrayList에서 임의 항목 검색 (0) | 2022.09.03 |
Vuetify 자동 완성 유사 항목이 표시되지 않습니다. (0) | 2022.09.03 |
시스템을 사용하는 것이 좋습니까?어레이를 복사하기 위한 for 루프가 아닌 arraycopy(...)를 선택하십시오. (0) | 2022.09.03 |