Clase generica de Conexion a Bases de datos

Una clase Generica de conexion a bases de datos

Una clase generica que realiza una conexion a bases de datos mysql, la cual esta declarada dentro del paquete conexion, recibe cuatro parametros:
String ip, String bd, String usr, String pass, los cuales se pueden enviar desde otra clase en donde se mande llamar... ejemplo

GenericaDb pnbd = new GenericaDb("192.168.54.2","listadb","admin","4dm1n1str");

despues se puede acceder a los elementos de la clase de la siguiente forma:

//Para obtener la conexion
Connexion conexion = qpn.getConexion();

package conexion;

/****************************************
* *
* @author Marco A. Trejo Lemus *
* 17/06/2008 09:47:01 AM *
****************************************/

import java.sql.*;

public class GenericaDb
{
public String driver,url,ip,bd,usr,pass;
public Connection conexion;

public GenericaDb(String ip, String bd, String usr, String pass)
{ driver="com.mysql.jdbc.Driver";
this.bd = bd;
this.usr = usr;
this.pass = pass;
url = new String("jdbc:mysql://"+ip+"/"+bd);
try
{ Class.forName(driver).newInstance();
conexion=DriverManager.getConnection(url,usr,pass);
System.out.println("Conexion a Base de Datos "+bd+" Ok");
}

catch (Exception exc)
{ System.out.println("Error al tratar de abrir la base de Datos"+bd+" : "+exc);
}
}

public Connection getConexion()
{ return conexion;
}

public Connection CerrarConexion() throws SQLException
{ conexion.close(); conexion = null;
return conexion;
}

} //fin de la clase
Publicado por Marco Antonio Trejo Lemus en 9:21 0 comentarios
Etiquetas: clases, genericas, java jdbc
martes 10 de junio de 2008

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.
Imagen de Marco Antonio Trejo Lemus

Clase generica de Conexion a Bases de datos Oracle

Hace tiempo publique un comentario para una conexion con una clase generica utilizando mysql ahora he logrado conectarme a una base de datos de oracle 10g mediante una clase generica de conexion

A continuacion les comparto el codigo:

package resources;

/****************************************
* *
* @author Marco A. Trejo Lemus *
*
****************************************/

import java.sql.*;

public class GenericaDb {

public String driver, url, ip, bd, usr, pass;
public Connection conexion;

public GenericaDb(String ip, String bd, String usr, String pass) {
driver = "oracle.jdbc.driver.OracleDriver";
this.bd = bd;
this.usr = usr;
this.pass = pass;
url = new String("jdbc:oracle:thin:@" + ip + ":1521:" + bd);
try {
Class.forName(driver).newInstance();
conexion = DriverManager.getConnection(url, usr, pass);
System.out.println("Conexion a Base de Datos " + bd + " Ok");
} catch (Exception exc) {
System.out.println("Error al tratar de abrir la base de Datos" + bd + " : " + exc);
}
}

public Connection getConexion() {
return conexion;
}

public Connection CerrarConexion() throws SQLException {
conexion.close();
conexion = null;
return conexion;
}
} //fin de la clase

Utilizar la clase Generica de conexion a bases de datos Oracle

Esta es una clase generica que realiza una conexion a bases de datos oracle, la cual esta declarada dentro del paquete resources, recibe cuatro parametros:
String ip, String bd, String usr, String pass, los cuales se pueden enviar desde cualquier otra clase en donde se manda llamar de la siguiente manera:

Ejemplo

GenericaDb conn = new GenericaDb("192.168.54.2","XE","developer","4dm1n1str");

Y listo el mensaje que nos debe de mostrar segun lo expuesto es:

Conexion a Base de Datos XE Ok

"Cual quier reto por dificil que sea, si se puede lograr, si realmente lo intentamos"

Saludos a toda la comunidad de desarrollo!

Marco

Imagen de ezamudio

Excepciones

No es una buena práctica cachar Exception, debes de interceptar excepciones específicas, solamente las que vas a manejar en tu código; las que no vas a manejar, no las caches, si no son de runtime, entonces las declaras en tu método.

Usando tu conexión genérica, si no se puede obtener la conexión, no me entero del error en mi código, ni tengo control sobre dónde aparezca el error, solamente sale a STDOUT. Solamente puedo saber que no tengo conexión comparando con null lo que obtenga de tu getConexion()...

Sé que parece una clase de conveniencia para no tener que teclear tanto código, cuando se crea una conexión, lo cual puede ser útil para casos de aplicaciones standalone que no se van a modificar, pero por otro lado en aplicaciones más grandes conviene mejor usar algo como Apache DBCP o configurar un DataSource en el contenedor. Y eso de no saber por qué no se pudo hacer la conexión, hace que no le puedas pasar el error al usuario en caso que fuera necesario (por ejemplo para decirle que no hay ruta al servidor destino, o que la conexión fue denegada, etc con lo cual ya se puede empezar a resolver el problema).