JDBC: Conectarse a una base de datos MS Access

27/Nov/2006 Java , , 17 Comentarios
Programación en Java

No es que MS Access sea una base de datos que sirva para grandes volúmenes de datos, ni que se la pueda pedir una gran concurrencia de peticiones. Si bien, su gran baza, es el ser una base de datos con la que empezar a aprender, además de dar funcionalidad a usuarios domésticos.

Algunos de los límites de MS Access son los siguientes:

  • Número de caracteres en un campo tipo texto: 255
  • Número de usuarios concurrente: 255
  • Tamaño máximo de la base de datos: 2Gb
  • Número de caracteres de una sentencia: 64.000

MS Access puede ser también un buen inicio para empezar a aprender a conectar bases de datos mediante JDBC. Los pasos que tendremos que seguir para conseguir esto son los siguientes.

Primero deberemos de crear una conexión ODBC. Una conexión ODBC permite crear una forma unificada de accesos entre una base de datos, sea cual sea su tipo (MS Access, FoxPro, MySQL,…) y el sistema Windows, y por ende los programas que corren sobre el.

Para crear una conexión ODBC deberemos de ir al Panel de Control >> Herramientas Administrativas >> Orígenes de Datos (ODBC). Si bien, esto puede cambiar dependiendo de la versión del sistema operativo y del lenguaje del sistema instalado.

Al final nos aparecerá una imagen como la que sigue:

ODBC

Lo siguiente que deberemos de hacer es crear un DSN del sistema. Esto lo que va a hacer es dar un nombre representativo a la base de datos que elijamos. Para ello deberemos de ir a la pestaña DSN de Sistema y pulsar sobre el botón de «Agregar…». Saliendonos la siguiente ventana:

DSN del sistema

El tipo de base de datos que añadiremos será el MS Access. (*.mdb). Ahora deberemos de indicar el nombre del DSN y la ubicación de nuestra base de datos. La ventana será la que sigue:

Base de Datos

Una vez que tenemos creado el DSN del sistema pasaremos a nuestro programa Java. Hay que recordar que para establecer una conexión JDBC necesitaremos dos cosas: el nombre del driver que realizará la conexión y la URL destino donde está la base de datos.

En el caso de las conexiones ODBC existe un driver estándar que se llama sun.jdbc.odbc.JdbcOdbcDriver. Veamos como sería la línea de conexión de dicho driver.

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");

Por lo que se refiere a la URL de destino, en el caso de ODBC se sigue la siguiente nomenclatura:

"jdbc:<subprotocol>:<subname>"

Donde el subprotocol sería odbc y el subname el nombre de DSN de sistema que hayamos asignado a nuestra base de datos. Quedandonos la URL de conexión de la siguiente forma:

String url = "jdbc:odbc:DSN_LineaDeCodigo";

Solo nos quedará el realizar la conexión. Veamos como sería esa línea de código:

Connection db =  DriverManager.getConnection (url, "usuario","password");

En usuario y password deberemos de poner el nombre del usuario y password que tenga de acceso la base de datos. Si es que los tiene. En caso negativo se deberán dejar vacíos.

Vídeos sobre Java


17 comentarios en “JDBC: Conectarse a una base de datos MS Access”

Víctor Cuervo

Diego Palencia

como hago para q por medio d euna macro access me valide varios campos en una consulta de dos tablas, la consulta «debe ser menor o igual ingreso»se debe revisar tres cosas la primera q la diferencia siempre sea positiva, ademas, q el campo codigo de material ynumero de pedido de entrada coincidan, si se dan las tres, debera continuar la macro con la consulta «Anexa a 2»; pero si no cumple la condicion, debera detenerse , mostrar el mensaje q le puse, y arrancar de nuevo.
O como lo haria en visual?….

Víctor Cuervo

Pablo

necesitas conseguirte un driver jdbc para acceso a la base de datos acces, normalmente dichos driver contienen la documentacion de como utilizarlos…
En la siguiente dir te muestran como acceder a un archivo mdb con 2 métodos, primero de manera directa (es la q mas me gusta) y segundo como el método descripto aquí.

http://www.pscode.com/vb/scripts/ShowCode.asp?txtCodeId=2691&lngWId=2

Víctor Cuervo

Diego Palencia

hola como estas?….mira q trabajo programando bases de datos de acces en administracion de inventarios peor me ha dado lio el q la vean desde internet, ya q no se como..quien me a.yuda con este tema?…la base se aloja en un servidor y uso acces 2007

Víctor Cuervo

Rodrigo Revelo

quiero realizar una base de datos para el manejo de una ferretería

Víctor Cuervo

lineadecodigo

@daniel,

¿Qué dudas tienes? ¿Cómo podemos ayudarte?

Víctor Cuervo

daniel

pues la verdad no entendi nada ;S

Víctor Cuervo

Sergio

LA MEJOR explicación de toda INTERNET!! POR DIOS!!

excelente!! aplauso!! gracias!!

Víctor Cuervo

Denisse Ochoa

Me pareció muy buena la explicación, pero tengo una pregunta: no importa donde se encuentre la base de datos? Es decir, debe compartir la misma carpeta del proyecto. Por fa ayudame con eso. Tengo esa duda desde hace un buen rato.

Víctor Cuervo

Magdalena

Hola, un gusto encontrarte.
me he conectado a una BD en access con Java, pero no se cómo jalar las tablas de mi BD, he logrado jalarlas a un cuadro de lista, pero yo quiero ver mis registros ya elaborados, en un cuadro de texto de Java, podrás ayudarme?.
Qué me recomiendas para manejar datos extensos, en Access o algún SQL, que haré si algún día se llena mi BD?

Víctor Cuervo

Leo

todo est{a bien

Víctor Cuervo

Alex

Como puedo conectarme a una base de datos *.mdb que tengo alojada en un servidor??

Víctor Cuervo

Joss

gracias a mi me ayudo mucho no tienes algun correo?

Víctor Cuervo

Liliana

Gracias, me ayudo mucho

Víctor Cuervo

Pablo

Como hago esto mismo en linux?

Víctor Cuervo

Ginger

muchas gracias, aunque lo que necesito realmente es la linea de comando que tengo que poner en ejecutar en Windows, porque estoy trabajando en un laboratorio y bloquean el panel de control

Víctor Cuervo

Mauro

Muchas Gracias. Estoy dando mis primeros pasos y or ahora vamos bien… Ahora tengo que guardar los datos en la base. Veremos otro tutorial excelente como este. Saludos desde Uruguay

Víctor Cuervo

sara

No sabes lo que me ha ayudado esto!! Muchas gracias!!!

¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*