You are on page 1of 9

Conexin Java y Microsoft Access 2010 desde Netbeans en Windows 7

Hola a todos!!, esta pubicacin est dedicada a todos


pero en especial a un compaero 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 versin 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 extensin 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 direccin por defecto que Access tiene asignado en el sistema

("C:\Users\"tu_usuario"\Documents" en Windows7), puesto que esta publicacin ser para Conexiones indirectas o estticas.

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 pestaa "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 contrasea

*Nota: Aunque por razones que estn en proceso de investigacin la contrasea que se pone aqu no se activa (por decirlo de otra forma, osea pongamos o no contrasea da lo mismo). Veremos ms adelante cmo ponerle una contrasea a nuestra BD!!

Nos queda Aceptar y Aceptar!!

Ahora veamos el cdigo fuente del proyecto: Recibir el nombre y la estructura de carpetas que se muestra a continuacin:

Veamos la clase Conexion que vari ligeramente: Como en este caso no hemos utilizando un driver como en casos anteriores; trabajamos conClass.forName(" "). Se preguntarn qu hace esa contrasea ah ("123456"); si lineas arriba mencion que daba igual ponerla o no; pues bien, lo que dije es cierto; pueden modificar la contrasea de esta clase y con normalidad seguir haciendo la conexin y consulta. Y claro la clase ConexionConsolaJavaAccess seguir siendo la misma que de los proyectos anteriores (Conexin Java y Derby utilizando Netbeans 7 (ConexionConsolaJavaDerby)): Ahora ejecutando nuestra clase ConexionConsolaJavaAccess debera mostrarnos lo siguiente:

Pero, sobre la contrasea: Eso quiere decir que nuestra base de datos est desprotegida?. Pues cualquiera pudieseingresar a ella. La solucin 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 contrasea y damos Aceptar y Aceptar!!!

Ahora s vers que la contrasea hace efecto a nuestra BD "AccessBD.accdb", y si en la claseConexion modificas la contrasea, nuestro proyecto no tendr permisos para acceder a la BD. Dudas y sugerencias, hganlas llegar... gracias! Ahhhhhhh y por favor si el material te fue til aydame recomendando por las redes sociales; dando "Me gusta" en Javaenaccion en Facebook o "+1" en Google+, etc etc. en :D.
Publicado por Roger Soto en 21:30 Enviar por correo electrnicoEscribe un blogCompartir con TwitterCompartir con Facebook Etiquetas: Base de Datos, Java, Microsoft Access

2 comentarios:

1. Lidia Silva _p_ _!!28 de mayo de 2

Conexion base de datos Access y Java


JAN

29
Post Info
Mouse en 06:24 10 comentarios

Permalink

Para poder acceder a una base de datos de Acces 2000-2010 de Microsoft, podemos utilzar dos formas, una de ellas es utilizando un Origen de Datos ODBC para utiliarlo como puente entra Access y Java, ,una forma mas directa, es enlazar la base de datos Access con Java utilizando la API JDBC de java y especificando el driver, la base de datos y el password (si es que tuviera) para realizar una conexion como se hizo con MySQL y Java. (Conexion a Base de datos)

Nuestra clase java para poder realizar una conexion, es la iguiente: Clase: Access_connection.java codigo fuente

import java.sql.*; import java.util.logging.Level; import java.util.logging.Logger; /** * @web http://jc-mouse.blogspot.com/ * @author Mouse */ public class Access_connection { //contrasea a la base de datos si es que tuviera, si no se deja vacio static String password = ""; //nombre de la base de datos Acces con extension *.mdb o *.accdb static String dbName = "TU_BASE_DE_DATOS.mdb"; //direccion de la base de datos static String bd = System.getProperty("user.dir") + "\\" + dbName + ";PWD=" + password; //driver para base de datos Access 2000, 2003, 2007, 2010

static String url = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + bd; Connection conn = null; public Access_connection() { try{ //obtenemos el driver para Access Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); //obtenemos la conexin conn = DriverManager.getConnection(url); //si la conexion tuvo exito if (conn!=null){ System.out.println("Conexin a base de datos "+bd+". listo"); } }catch(SQLException e){ System.out.println(e); }catch(ClassNotFoundException e){ System.out.println(e); } } /**Permite retornar la conexin*/ public Connection getConnection(){ return conn; } //como dice su nombre, termina la conexion a la base de datos public void desconectar(){ try { conn.close(); //conn = null; System.out.println("La conexion a la " a terminado"); } catch (SQLException ex) { Logger.getLogger(Access_connection.class.getName()).log(Level .SEVERE, null, ex); } } } base de datos " + bd +

La direccion a la base de datos se la realiza utilizando el comando "System.getProperty("user.dir")", el cual nos retorna la direccion de nuestro proyecto (*.JAR), si se desea especificar otra direccin, por ejemplo: "E:/mi base de datos/db.mdb", solamente se debe eliminar esa instruccion.

La forma de implementar esta clase, es similar a la clase conexion MySQL Conexion a Base de datos. osea:

public class Main { public static void main(String[] args) { //se realiza la conexion Access_connection access = new Access_connection(); //se cierra la conexion access.desconectar(); } }
Access cuenta con dos extensiones para base de datos, para versiones antiguas 2000-2003 utiliza la extension *.mdb y para las versiones recientes de access 2007-2010, utiliza *.accdb, esta

clase, Access_connection.java, realiza la conexion para ambas versiones.

fin?

You might also like