Nuestra clase java para poder realizar una conexion, es la iguiente:
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 { //contraseña 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 conexión conn = DriverManager.getConnection(url); //si la conexion tuvo exito if (conn!=null){ System.out.println("Conexión a base de datos "+bd+". listo"); } }catch(SQLException e){ System.out.println(e); }catch(ClassNotFoundException e){ System.out.println(e); } } /**Permite retornar la conexión*/ 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 base de datos " + bd + " a terminado"); } catch (SQLException ex) { Logger.getLogger(Access_connection.class.getName()).log(Level.SEVERE, null, ex); } } }
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 dirección, 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(); } }
13 comentarios:
HOLA BUEN DIA.. MUY CHEVERE LA APLICAION.. ME PREGUNTO SI ME PUEDE ASESORAR CON UN PROGRAMA SIMILAR MI CORREO ES todorico1987@hotmail.com ... gracias
Es muy buen Blog Pero (Tu proyectos tienen fallas en general) y si vas a poner como descarga tus proyectos pon los completos y q se puedan descargar Ing.
ok patrón ;)
Hola me ha servido mucho tu codigo fuente pero me marca errores podrias decirme porque? Soy primerisa en estas cuestiones te agradezco de antemano tu ayuda
Los errores que marca son estos
java.sql.SQLException: [Microsoft][Controlador ODBC Microsoft Access]Error general No se puede abrir la clave 'Temporary (volatile) Ace DSN for process 0xf84 Thread 0xda4 DBC 0x4ec8004 Jet' del Registro.
Exception in thread "main" java.lang.NullPointerException
at Prueba1.Access_connection.desconectar(Access_connection.java:51)
at Prueba1.Access_connection.main(Access_connection.java:72)
ey men, una pregunta, de antemano agradeciendo tu trabajo y apoyo, jaja....tengo winndows siete y no puedo conectar las bd por que son puedo "agendar" el DNS a los origenes de datos ODBC, tendras la respuesta a my problem, jajaj!!!, reiterando el agradecimiento por tu portal y ayuda...le_ose
Muy buena aplicacion
Hola :D me sirvió mucho tu código muy buen ejemplo... saludos
alex
para agregar origenes ODBC en win 7 debes ir a la carpeta de windows y luego a la carpeta SysWOW64 y ejecutar el archivo odbcad32.exe
en win7 se invirtio el lugar donde se encuentran los archivos odbcad32.exe para 32 bits y 64 bits, es por eso que no te funciona el que esta en el panel de control, herramientas administrativas
Milly dijo:
descargue tu archivo pero no me funciona dice k no encuentra el driver para hacer la conexion con acces y aunque quiero agregar el diver mi maquina dice k no se han istalado el driver para acces k puesdo hacer
Muchas Gracias por tu aporte, fuiste de gran ayuda!!. Publico el mismo código pero sin los pequeños errores que se te fueron :P
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
*
* @author Pablo Fuentes
*/
public class ConexionDB {
//contraseña a la base de datos si es que tuviera, si no se deja vacio
private String password = "";
//nombre de la base de datos Acces con extension *.mdb o *.accdb
private String dbName = "TU_BASE_DE_DATOS.mdb";
//direccion de la base de datos
private String bd = System.getProperty("user.dir") + "\\" + dbName + ";PWD=" + password;
//driver para base de datos Access 2000, 2003, 2007, 2010
private String url = "jdbc:odbc:;DRIVER=Microsoft Access Driver (*.mdb, *.accdb);DBQ=" + bd;
Connection conn = null;
public void Access_connection() {
try{
//obtenemos el driver para Access
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
//obtenemos la conexión
conn = DriverManager.getConnection(url);
//si la conexion tuvo exito
if (conn!=null){
System.out.println("Conexión a base de datos "+bd+". listo");
}
}catch( SQLException | ClassNotFoundException e){
System.out.println(e);
}
}
/**Permite retornar la conexión*/
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 base de datos " + bd + " a terminado");
} catch (SQLException ex) {
Logger.getLogger(getClass().getName()).log(Level.SEVERE, null, ex);
}
}
}
Hola, agradezco mucho que te tomes el trabajo de hacer este blog que es de gran ayuda, quisiera saber si tienes alguna entrada (yo no encontre ninguna), donde expliques la conexion a una bd remota (en otra pc o en un servidor web, ambas), muchas gracias de antemano
Muchisimas Gracias tu código está fenomenal me sirvió de mucho... sigue publicando cosas así... Me gusta mucho tu blog... Saludos desde Colombia.
Hola, sabes como hay que hacer para que al crear el .jar y ejecutarlo funcione la conexión con la base de datos?
Publicar un comentario