1. RmiJDBC를 활용한 Access 데이터베이스 원격 접속
일반적으로 SQL Server, Oracle, MySQL 같은 DBMS는 서버에서 서비스로 실행되며, Java는 JDBC를 통해 원격 연결이 쉽습니다. 하지만 소규모 프로젝트나 특수 상황에서는 이러한 무거운 DBMS 대신 Access가 더 적합할 수 있습니다. 원격에서 Java로 Access 데이터베이스에 접근해야 할 때 RmiJDBC 라이브러리를 사용할 수 있습니다.
주의: ODBC 데이터 소스를 이용한 원격 연결 문자열(jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=//192.168.0.1/目录/db.mdb)은 특별한 설정 없이는 작동하지 않습니다.
설치 및 설정 단계
-
RmiJDBC JAR 파일 다운로드 및 환경 변수 설정
RmiJDBC 공식 사이트에서RmiJdbc.jar를 다운로드합니다. 이후 CLASSPATH에 추가합니다.// Windows 예시 set CLASSPATH=%CLASSPATH%;D:\RmiJdbc\dist\lib\RmiJdbc.jar -
RmiJDBC 서버 실행
서버 측에서 다음 명령어를 실행하여 RmiJDBC 서비스를 시작합니다. 이 단계를 생략하면 연결 시Connection refused오류가 발생합니다.java org.objectweb.rmijdbc.RJJdbcServer참고: 32비트 JDK 환경에서는 정상 작동하지만, 64비트 JDK에서는 오류가 발생할 수 있습니다.
-
클라이언트 연결 설정
- 서버에서 ODBC 데이터 소스를 생성하여 특정 .mdb 파일을 가리키도록 설정합니다. (예: 데이터 소스 이름을 "english"로 지정)
- 클라이언트 Java 코드에서 다음과 같이 연결합니다.
Class.forName("org.objectweb.rmijdbc.Driver").newInstance(); String connectionUrl = "jdbc:rmi://192.168.0.201/jdbc:odbc:english";이 방법을 사용하면 소규모 프로젝트에서 무거운 DBMS 설치 없이 Access로 간편하게 작업할 수 있습니다.
2. UCanAccess를 이용한 Access 데이터베이스 로컬 및 원격 접속
UCanAccess는 순수 Java 기반의 Access 데이터베이스 드라이버로, ODBC에 의존하지 않습니다. 원격 접속은 파일 공유를 통해 간접적으로 가능하며, 로컬 접속에 더 적합합니다.
설치 및 사용 방법
-
UCanAccess JAR 파일 다운로드
UCanAccess 공식 사이트에서 라이브러리를 다운로드합니다. 핵심 JAR만 사용해도 되지만, 모든 종속 라이브러리를 포함하는 것이 안전합니다. -
Java 코드 예제
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class AccessExample { public static void main(String[] args) throws Exception { // 드라이버 로드 (변경 불가) Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); // 데이터베이스 연결 URL: 파일 경로를 실제 .mdb 위치로 변경 String dbPath = "G:\\Access\\bookmng.mdb"; Connection connection = DriverManager.getConnection("jdbc:ucanaccess://" + dbPath, "", ""); // SQL 실행 (SELECT 예제) Statement statement = connection.createStatement(); ResultSet resultSet = statement.executeQuery("SELECT * FROM test"); while (resultSet.next()) { System.out.println(resultSet.getString("name")); } // 리소스 정리 (생략 가능) resultSet.close(); statement.close(); connection.close(); } } -
참고 사항
jdbc:ucanaccess://뒤에는 Access 파일의 절대 경로 또는 상대 경로를 입력합니다.- 사용자 이름과 비밀번호는 빈 문자열로 두어도 무방합니다.
- SQL 구문은 MySQL, Oracle 등과 기본적으로 동일하게 사용 가능합니다.