Subscribe:

viernes, 27 de abril de 2012

Conexión Java y Microsoft Access 2010 desde Netbeans en Windows 7

Hola a todos!!, esta pubicación está dedicada a todos pero en especial a un compañero de clases; William, bueno empecemos mencionando lo que necesitamos para el correcto funcionamiento de este ejemplo:

Microsoft Access, en cualquiera de sus versiones ya sea anteriores(2003) como posteriores (trabajé con la versión 2010), lo que cambia es únicamente las extensiones con las que se guarda una Base de Datos.

Una vez abierto Microsoft Access procedemos a crear la Base de Datos, la Tabla y luego rellenamos algunos datos.
*Nota 01: Si no logras cambiar el nombre de la BD a tu preferencia, hazlo ubicando el archivo origen.
*Nota 02: Observa que la extensión de la BD es ".accdb" (esto en versiones superiores desde M. Access 2007), cosa que en versiones inferiores al 2007 es ".mdb".
*Nota 03: Guarda la BD en la dirección por defecto que Access tiene asignado en el sistema ("C:\Users\"tu_usuario"\Documents" en Windows7), puesto que esta publicación será para Conexiones indirectas o estáticas.

Con lo cual deberá quedar de la siguiente manera:

Ya tenemos la base de datos!
Bueno ahora vamos a configurar el servicio como en los otros casos (Derby), vamos al panel de control:
Buscamos "ODBC"
Ahora estamos en la pestaña "DSN Usuario" y escogemos tal como se muestra en la siguiente imagen:
A nuestro DSN (Data Source Name) lo llamaremos "ADB", luego ubicaremos el archivo de la BD, tal como se muestra en la imagen: 
Ahora vamos a agregarle una contraseña
*Nota: Aunque por razones que están en proceso de investigación la contraseña que se pone aquí no se activa (por decirlo de otra forma, osea pongamos o no contraseña da lo mismo). Veremos más adelante cómo ponerle una contraseña a nuestra BD!!

 Nos queda Aceptar y Aceptar!!
Ahora veamos el código fuente del proyecto:
Recibirá el nombre y la estructura de carpetas que se muestra a continuación:
Veamos la clase Conexion que varió ligeramente:

Como en este caso no hemos utilizando un driver como en casos anteriores; trabajamos con Class.forName(" ").
Se preguntarán qué hace esa contraseña ahí ("123456"); si lineas arriba mencioné que daba igual ponerla o no; pues bien, lo que dije es cierto; pueden modificar la contraseña de esta clase y con normalidad seguirá haciendo la conexión y consulta.

Y claro la clase ConexionConsolaJavaAccess seguirá siendo la misma que de los proyectos anteriores (Conexión Java y Derby utilizando Netbeans 7 (ConexionConsolaJavaDerby)):
Ahora ejecutando nuestra clase ConexionConsolaJavaAccess debería mostrarnos lo siguiente:
Pero, sobre la contraseña:
¿Eso quiere decir que nuestra base de datos está desprotegida?. Pues cualquiera pudiese ingresar a ella.
La solución a ese problema se tiene que implementar desde el mismo Microsoft Access de la siguiente forma:

Abrimos la base de datos "AccessBD.accdb" en "Abrir en modo exclusivo" como se muestra:
 Ahora hacemos lo siguiente:
 Finalmente ponemos la contraseña y damos Aceptar y Aceptar!!!
Ahora sí verás que la contraseña hace efecto a nuestra BD "AccessBD.accdb", y si en la clase Conexion modificas la contraseña, nuestro proyecto no tendrá permisos para acceder a la BD.
Dudas y sugerencias, háganlas llegar... gracias!

Ahhhhhhh y por favor si el material te fue útil ayúdame recomendando por las redes sociales; dando "Me gusta" en Javaenaccion en Facebook o "+1" en Google+, etc etc. en :D.

9 comentarios:

Publicar un comentario en la entrada

Todo en Infolinks