gentoo linux, java, software libre y otras hierbas
oct, 23 2006 - 1:10 pm

Manipular/conectarse/consultar una base de datos hecha en Access desde Java

Algo que me han preguntado varias veces, y pues es algo fácil la verdad. Primero, para los que no saben mucho del tema, decir que para manipular bases de datos desde Java se utiliza la API JDBC.
Umm, lo primero es crear la base de datos. Entonces hacemos la parte aburrida (recopilación de datos, registros de ejemplo, normalización y Modelo Entidad relación). Diseñamos la base de datos en Access (nada más fácil), y listo.

En este caso voy a trabajar con una típica base de datos que gestiona los datos de un banco. Aclarar dos cosas: el modelo lo saqué de la opción “relaciones” de Access, por que me dio pereza hacer uno nuevo; y en sí, la estructura de las tablas son hechas por Diego Burbano (de un tutorial de Oracle), emm, sí me dio pereza hacer uno nuevo.

Vamos al grano!!! Los pasos para manipular una BD en Java son los siguientes:

1. Cargar la clase del controlador de la base de datos; eso se hace con la instrucción:

Class.forName(“sun.jdbc.odbc.JdbcOdbcDriver”).newInstance();

En este caso se utiliza el controlador OBDC, ya que estamos trabajando con Access (Microsoft).

2. Establecer la conexión a la base de datos. Para ello necesitamos crear un objeto Connection al cual le asignamos el tipo y nombre del controlador (driver), la ruta donde se encuentra la BD, el usuario y contraseña en caso de que la base de datos esté protegida con ellos.

Connection conn = DriverManager.getConnection(“jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb);DBQ=E:\\EjemploBD\\banco.mdb;PWD=”,”",”");

Nota: Fíjense que para separar los directorios de la ruta se utiliza doble back slash (\\), ya que de lo contrario la cadena se interpretaría incorrectamente.

3. Crear un objeto Statement para consultar la base de datos.

Statement sentencia = conn.createStatement();

4. Crear un objeto ResultSet, que guardará el conjunto de resultados provenientes de la consulta:

ResultSet conjuntoResultados = sentencia.executeQuery(“select * from cliente”);

5. Recorrer el objeto ResulSet, que contiene el resultado de la consulta:

while(conjuntoResultados.next())
resultado = conjuntoResultados.getString(1) + “\t” + conjuntoResultados.getString(2) + “\t” + conjuntoResultados.getString(3);

Nota: en este caso utilizo la manera más fácil de recorrer los resultados, pero no la más eficiente. Lo ideal es crear un objeto MetaData que extraiga del resultado información como: número de filas, número de columnas, etc. Pero eso lo dejamos para después, de momento no nos compliquemos ;) .

En el programa de ejemplo el resultado es:

http://img339.imageshack.us/img339/6545/resultadoha7.png

Adjunto la base de datos de prueba, y el programa en java (muy bien comentariado) que realiza las conexiones:

Descargar EjemploBD.zip (indefinidamente inservible)

Saludos!!!

26 Comentarios | deja el tuyo

26 Comentarios en “Manipular/conectarse/consultar una base de datos hecha en Access desde Java”

  1. Anonymous dice:

    holaaaa… llegue a tu blog intentando resolver un examen de java para la universidad, y ese ejemplo que tienes como trabjar con base de datos acces y graficas, esta malo el link de descarga, te agradeceria si lo puedes arreglar porfavor…

    necesito simplemente leer en un label un campo de la tabla y recorrerla para atras y para adelante.. te agradeceria tu ayuda… lo necesito apra el 15 de noviembre

    Edgar

    placeboepm@hotmail.com

  2. Casidiablo dice:

    Sep… he tenido problemas con el hosting donde alojo los archivos. Y en este momento no tengo los ejemplo… mañana arreglo el problema.

    Gracias por informar. saludos!!!

  3. Anonymous dice:

    Hola,

    Soy perseuss…Programador Java desde hace 3 años, de igual manera MySQL. Trabajo con IDE´s de desarrollo como Netbeans y Eclipse, me gustan tus comentarios y los temas hacerca de Java aun mas, pero veo que algunos de tus Adeptos se quejan de los enlaces y descargas que ofreces, deberias corregir el problema, desearia poder encontrar ma personas como tu para formar un equipo solido de investigacion y desarrollo.

    que piensas?

    perseuss@hotmail.com

  4. Eugenia dice:

    ………..hola… gracias por que me ha servido mucho esta pagina … pero no puedo descargar el ejercicio me podrias ayudar de antemano gracias………

  5. Oscar dice:

    hola quisiera algun correo paracomunicarme contigo ya que tengo varias consultas acerca de las conexiones a base de datos espero pronto tu respuesta y gracias por tu tiempo

  6. Casidiablo dice:

    Hola Oscar. Las dudas que tengas, las planteas aquí mismo o en el Foro de Java de elhacker.net, y con gusto te ayudo.

    Un saludo!

  7. victor lavolpe dice:

    hola mucho gusto, son un desarrollador en enseñansa y justo ahora estoy haiendo un programa q se conecta a una base de datos, me parecio muy buena tu explicacion, pro tu link del ejemplo no me lo quiere abrr. podria verlo please

  8. victor lavolpe dice:

    gracias x todo

  9. alvaro dice:

    hola ….amigos.. me gustaria saber como conectar una base de datos de access con neatbeans… por favor si alguien me puede ayudar.. y que este explicado paso por paso… gracias

  10. Alvaro dice:

    Pinche Diablito de mierda, corrige tu pinche link si es que en verdad sirve tu explicacion y ese programa que segun tu comentaste bien jajajaja
    Saludos
    att: El Anticristo jajajaja

  11. Cristian dice:

    Umm… yo creo que no se va a poder :P Se perdio ese archivo para siemrep :P

  12. marry dice:

    hola casi Diablo
    pues que mal q no
    pongas bien tu link…
    para que publicas algo si no vas a estar dispuesto a responder algo concretamente y sin tanta modestia
    llego a la conclusion de que apestasss tu y tu maldita explicacion

  13. Cristian dice:

    Juas… marry, tu comentario tampoco aporta mucho, pero gracias por la visita.

    Un saludo!

  14. JCRONOS dice:

    señores el mismo codigo parece ser que esta en esta pagina y pueden hacer copiar y pegar http://www.miliuco.net/java/jdbc/jdbc/access_sin_odbc.html

  15. Marcos dice:

    NECESITO URGENTEMENTE realizar un programa en C que realice:Dada la siguiente ecuación realizar el programa que calcule el valor de x, para valores de a y b introducidos por el usuario por teclado. Las sumas y productos las debe realizar una función. El problema es el tiempo, trabajo, familia, casa, estudios, por lo que me es imposible abarcar la posiblidad de realizarlo por mis medios. disculpe las molestias

¡Déjanos tu comentario!