Quiero manipular una base de datos de Microsoft Access (archivo .accdb o .mdb) de mi proyecto Java. No quiero usar JDBC-ODBC Bridge y el controlador Access ODBC de Microsoft porque:
- el puente JDBC-ODBC se ha eliminado de Java SE 8 y no es compatible (ref: aquí ),
- el puente JDBC-ODBC no funciona correctamente con el controlador ODBC de Access cuando el texto incluye caracteres Unicode con puntos de código por encima de U + 00FF (ref: aquí ), por lo que dicha configuración no podría manejar caracteres como griego, ruso, chino , Árabe, etc.,
- el controlador Access ODBC de Microsoft solo funciona en Windows, y
- hay versiones separadas de 32 bits y 64 bits del motor de base de datos de Access (y el controlador ODBC) que pueden ser una molestia para la implementación.
He visto otras respuestas que mencionan un controlador JDBC para bases de datos de Access llamado UCanAccess . ¿Cómo puedo configurar mi proyecto Java para utilizar este enfoque?
(Las respuestas que sugieran mejores formas de trabajar con bases de datos de Access desde Java también serían bienvenidas).
java
ms-access
ucanaccess
Gord Thompson
fuente
fuente
Respuestas:
UCanAccess es un controlador JDBC de Java puro que nos permite leer y escribir en bases de datos de Access sin usar ODBC. Utiliza otros dos paquetes, Jackcess y HSQLDB , para realizar estas tareas. La siguiente es una breve descripción general de cómo configurarlo.
Opción 1: usar Maven
Si su proyecto utiliza Maven , simplemente puede incluir UCanAccess a través de las siguientes coordenadas:
groupId: net.sf.ucanaccess
artifactId: ucanaccess
El siguiente es un extracto de
pom.xml
, es posible que deba actualizar<version>
para obtener la versión más reciente:Opción 2: agregar manualmente los archivos JAR a su proyecto
Como se mencionó anteriormente, UCanAccess requiere Jackcess y HSQLDB. Jackcess a su vez tiene sus propias dependencias . Entonces, para usar UCanAccess, deberá incluir los siguientes componentes:
UCanAccess (ucanaccess-xxxjar)
HSQLDB (hsqldb.jar, versión 2.2.5 o posterior)
Jackcess (jackcess-2.xxjar)
commons-lang (commons-lang-2.6.jar, o versión 2.x más reciente )
commons-logging ( commons-logging-1.1.1.jar, o una versión 1.x más reciente )
Afortunadamente, UCanAccess incluye todos los archivos JAR necesarios en su archivo de distribución. Cuando lo descomprima verá algo como
Todo lo que necesita hacer es agregar los cinco (5) JAR a su proyecto.
Eclipse: haga clic con el botón derecho en el proyecto en el Explorador de paquetes y elija
Build Path > Configure Build Path...
. Haga clic en el botón "Agregar JAR externos ..." para agregar cada uno de los cinco (5) JAR. Cuando haya terminado, su ruta de compilación de Java debería verse asíNetBeans: expanda la vista de árbol de su proyecto, haga clic con el botón derecho en la carpeta "Bibliotecas" y seleccione "Agregar JAR / Carpeta ...", luego busque el archivo JAR.
Después de agregar los cinco (5) archivos JAR, la carpeta "Bibliotecas" debería verse así:
IntelliJ IDEA: Elija
File > Project Structure...
del menú principal. En el panel "Bibliotecas", haga clic en el botón "Agregar" (+
) y agregue los cinco (5) archivos JAR. Una vez hecho esto, el proyecto debería verse así:¡Eso es!
Ahora "U puede acceder" a los datos en archivos .accdb y .mdb usando un código como este
Divulgar
En el momento de redactar esta sesión de preguntas y respuestas, no tenía ninguna participación ni afiliación con el proyecto UCanAccess; Lo acabo de usar. Desde entonces me he convertido en colaborador del proyecto.
fuente
net.ucanaccess.jdbc.UcanaccessDriver