UCanAccess 는 ODBC를 사용하지 않고도 Access 데이터베이스에서 읽고 쓸 수있는 순수한 Java JDBC 드라이버입니다. 이 작업을 수행하기 위해 두 개의 다른 패키지 Jackcess 및 HSQLDB 를 사용합니다. 다음은 설정 방법에 대한 간략한 개요입니다.
옵션 1 : Maven 사용
프로젝트에서 Maven 을 사용 하는 경우 다음 좌표를 통해 UCanAccess를 포함 할 수 있습니다.
groupId : net.sf.ucanaccess
artifactId : ucanaccess
다음은에서 발췌 한 것입니다 pom.xml
. <version>
최신 릴리스를 가져 오려면 을 업데이트해야 할 수 있습니다 .
<dependencies>
<dependency>
<groupId>net.sf.ucanaccess</groupId>
<artifactId>ucanaccess</artifactId>
<version>4.0.4</version>
</dependency>
</dependencies>
옵션 2 : 프로젝트에 JAR을 수동으로 추가
위에서 언급했듯이 UCanAccess에는 Jackcess 및 HSQLDB가 필요합니다. Jackcess는 차례로 자체 종속성이 있습니다. 따라서 UCanAccess를 사용하려면 다음 구성 요소를 포함해야합니다.
UCanAccess (ucanaccess-xxxjar)
HSQLDB (hsqldb.jar, 버전 2.2.5 이상)
Jackcess (jackcess-2.xxjar)
commons-lang (commons-lang-2.6.jar 또는 최신 2.x 버전 )
commons-logging ( commons-logging-1.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
프로젝트에 JAR 5 개를 모두 추가 하기 만하면됩니다.
참고 : 마십시오 하지 추가 loader/ucanload.jar
당신이 다른 5 JAR 파일을 추가하는 경우 빌드 경로에. 이 UcanloadDriver
클래스는 특수한 상황에서만 사용되며 다른 설정이 필요합니다. 자세한 내용은 여기 에서 관련 답변 을 참조하십시오.
Eclipse : 패키지 탐색기에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 Build Path > Configure Build Path...
. "외부 JAR 추가 ..."버튼을 클릭하여 5 개의 JAR을 각각 추가합니다. 완료되면 Java 빌드 경로가 다음과 같아야합니다.
NetBeans : 프로젝트의 트리보기를 확장하고 "라이브러리"폴더를 마우스 오른쪽 단추로 클릭하고 "JAR / 폴더 추가 ..."를 선택한 다음 JAR 파일을 찾습니다.
5 개의 JAR 파일을 모두 추가 한 후 "Libraries"폴더는 다음과 같아야합니다.
IntelliJ IDEA :File > Project Structure...
기본 메뉴에서 선택 합니다. "라이브러리"창에서 "추가"( +
) 버튼을 클릭하고 5 개의 JAR 파일을 추가합니다. 완료되면 프로젝트는 다음과 같이 보일 것입니다.
그게 다야!
이제 다음과 같은 코드를 사용하여 .accdb 및 .mdb 파일의 "U Can Access"데이터
// 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를 작성하는 시점에 저는 UCanAccess 프로젝트에 관여하거나 제휴하지 않았습니다. 방금 사용했습니다. 나는 그 이후로 프로젝트의 기여자가되었습니다.