miércoles, 2 de julio de 2014

Establecer conexión con gestores de BD

A lo largo de "la red" existen muchas sugerencias para establecer una conexión a los gestores de base de datos (BD). Sin embargo, en esencia sólo se necesitan dos instrucciones para establecer la conexión:

Class.forName(driver);
connection = DriverManager.getConnection(url, user, password);

Si ya cuentas con el driver, url, usuario (user) y contraseña (password), además del "jar" para la conexión; Podrás utilizar la siguiente estrategia para establecer una conexión a tu gestor de BD favorito.

// package tu.paquete.util;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStream;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author AdrianCruz
 */
public class DbConnection {
private static Connection connection = null;
    public static Connection getConnection() {
        String driver="", url="",user="", password="";                
        if (connection != null)
            return connection;
        else {
            try {
                Properties prop = new Properties();//UTILidad para leer propiedades
                //referencia al flujo de entrada de bytes:
                InputStream inputStream = DbConnection.class.getClassLoader().
                        getResourceAsStream("/db.properties");//buscar el recurso db.properties, debe estar en src <default package>
                prop.load(inputStream); //cargar el archivo de propiedades
                driver = prop.getProperty("driver");//recuperar valor de clave driver
                url = prop.getProperty("url");//recuperar valor de clave url
                user = prop.getProperty("user");//recuperar valor de clave user
                password = prop.getProperty("password");//recuperar valor de clave password
                Class.forName(driver);
                connection = DriverManager.getConnection(url, user, password);                                                    
            } catch(FileNotFoundException ex){
                System.out.println("******* no se enocntró el archivo");
            }
            catch (IOException ex) {
                String msg="******* problema al leer el archivo de propiedades";
                Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, msg, ex);                
            } catch (SQLException ex) {
                String msg="****** problema al establecer la conexión .getConnection("+url+","+ user+","+ password+")";
                Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, msg, ex);                
            } catch (ClassNotFoundException ex) {                
                String msg="****** problema al cargar el Driver: Class.forName("+driver+")";
                Logger.getLogger(DbConnection.class.getName()).log(Level.SEVERE, msg, ex);                
            } catch(Exception e){
                System.out.println("***** error no identificado");
            }
            return connection;
        }
    }
}



El código, de la clase anterior, necesita al archivo db.properties que contiene las claves con los valores de la conexión


Los comentarios se declaran con la almohadilla o gato (#)
En este caso, los comentarios corresponden a los datos de una conexión con SQL Server, mientras que las claves activas corresponden a una conexión con MySQL. Se utiliza el servidor www.db4free.net por el puerto 3306 quien aloja la BD, pero en "desarrollo" podría ser localhost.

Para asegurarse de contar con los datos correctos, se recomienda ver el blog  MySQL o SQL Server



No hay comentarios.:

Publicar un comentario