Quero manipular um banco de dados do Microsoft Access (arquivo .accdb ou .mdb) do meu projeto Java. Não quero usar a ponte JDBC-ODBC e o driver ODBC do Access da Microsoft porque:
- a ponte JDBC-ODBC foi removida do Java SE 8 e não é suportada (ref: aqui ),
- a ponte JDBC-ODBC não funciona corretamente com o driver ODBC do Access quando o texto inclui caracteres Unicode com pontos de código acima de U + 00FF (ref: aqui ), portanto, tal configuração não seria capaz de lidar com caracteres como grego, russo, chinês , Árabe, etc.,
- o driver ODBC do Access da Microsoft só funciona no Windows, e
- existem versões separadas de 32 e 64 bits do Access Database Engine (e do driver ODBC) que podem ser um incômodo para a implantação.
Já vi outras respostas mencionando um driver JDBC para bancos de dados do Access chamado UCanAccess . Como posso configurar meu projeto Java para usar essa abordagem?
(Respostas sugerindo melhores maneiras de trabalhar com bancos de dados Access de Java também seriam bem-vindas.)
java
ms-access
ucanaccess
Gord Thompson
fonte
fonte
Respostas:
UCanAccess é um driver Java JDBC puro que nos permite ler e gravar em bancos de dados do Access sem usar ODBC. Ele usa dois outros pacotes, Jackcess e HSQLDB , para realizar essas tarefas. A seguir está uma breve visão geral de como configurá-lo.
Opção 1: usando Maven
Se o seu projeto usa Maven, você pode simplesmente incluir UCanAccess através das seguintes coordenadas:
groupId: net.sf.ucanaccess
artifactId: ucanaccess
A seguir está um trecho de
pom.xml
, pode ser necessário atualizar o<version>
para obter a versão mais recente:Opção 2: adicionar manualmente os JARs ao seu projeto
Como mencionado acima, UCanAccess requer Jackcess e HSQLDB. O Jackcess, por sua vez, tem suas próprias dependências . Portanto, para usar o UCanAccess, você precisará incluir os seguintes componentes:
UCanAccess (ucanaccess-xxxjar)
HSQLDB (hsqldb.jar, versão 2.2.5 ou mais recente)
Jackcess (jackcess-2.xxjar)
commons-lang (commons-lang-2.6.jar, ou versão 2.x mais recente )
commons-logging ( commons-logging-1.1.1.jar ou versão 1.x mais recente )
Felizmente, o UCanAccess inclui todos os arquivos JAR necessários em seu arquivo de distribuição. Ao descompactar, você verá algo como
Tudo o que você precisa fazer é adicionar todos os cinco (5) JARs ao seu projeto.
Eclipse: clique com o botão direito do mouse no projeto no Package Explorer e escolha
Build Path > Configure Build Path...
. Clique no botão "Adicionar JARs externos ..." para adicionar cada um dos cinco (5) JARs. Quando você terminar, seu caminho de construção Java deve ser parecido com esteNetBeans: Expanda a visualização em árvore do seu projeto, clique com o botão direito na pasta "Bibliotecas" e escolha "Adicionar JAR / Pasta ..." e navegue até o arquivo JAR.
Depois de adicionar todos os cinco (5) arquivos JAR, a pasta "Bibliotecas" deve ter a seguinte aparência:
IntelliJ IDEA: Escolha
File > Project Structure...
no menu principal. No painel "Bibliotecas", clique no botão "Adicionar" (+
) e adicione os cinco (5) arquivos JAR. Uma vez feito isso, o projeto deve ser parecido com isto:É isso aí!
Agora "Você pode acessar" dados em arquivos .accdb e .mdb usando um código como este
Divulgação
No momento em que escrevi este Q&A, eu não tinha envolvimento ou afiliação com o projeto UCanAccess; Eu apenas usei. Desde então, tornei-me um contribuidor do projeto.
fonte
net.ucanaccess.jdbc.UcanaccessDriver