Ir al contenido principal

Conexion JDBC - JAVA a travès de un archivo Properties

Para conectar a bases de datos con el archivo properties necesitas definir la siguiente estructura:

Rutas de los Archivos Properties, es esas rutas tienes que haber creado tus archivos properties:

package com.develtrex.util;
import java.net.URL;
/**
 *
 * @author 007M
 */
public class Ruta {
    private final String dbOracle="/com/develtrex/propiedad/dboracle.properties";
    private final String dbMysql="/com/develtrex/propiedad/dbmysql.properties";
    private final String dbPostgres="/com/develtrex/propiedad/dbpostgres.properties";
    private final String dbSqlServer="/com/develtrex/propiedad/dbsqlserver.properties";
   
    public URL getFileDbOracle(){
        return getClass().getResource(dbOracle);
    }
   
    public URL getFileDbMysql(){
        return getClass().getResource(dbMysql);
    }
   
    public URL getFileDbPostgres(){
        return getClass().getResource(dbPostgres);
    }
   
    public URL getFileDbSqlServer(){
        return getClass().getResource(dbSqlServer);
    }
}

Definirmos la Clase ReadProperties, que se encarga de la lectura de  los archivos properties:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.develtrex.dao;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.util.Properties;
/**
 *
 * @author 007M
 */
public  class ReadProperties {
    private java.net.URL ruta;
    private String ipHost;
    private String puerto;
    private String basedatos;
    private String usuario;
    private String contrasena;
    private String gestor;
   
    public ReadProperties(java.net.URL path) throws IOException{
        this.ruta=path;
        init();
    }
   
    private void init()throws IOException{
        try{
        Properties props=new Properties();
        InputStream in = ruta.openStream();
        props.load(in);   
        ipHost=props.getProperty("iphost");
        puerto=props.getProperty("puerto");
        basedatos=props.getProperty("namedb");
        usuario=props.getProperty("usuario");
        contrasena=props.getProperty("contrasena");
        gestor=props.getProperty("gestor");
        in.close();
        }catch(IOException ex){           
            System.err.println("causa: " + ex.getCause());
            System.err.println("Mensaje: " + ex.getMessage());
            System.err.println("Localizacion: " + ex.getLocalizedMessage());
            System.err.println("Traza: " + ex.getStackTrace());
            throw ex;
        }
    }
    public URL getRuta() {
        return ruta;
    }
    public void setRuta(URL ruta) {
        this.ruta = ruta;
    }
    public String getIpHost() {
        return ipHost;
    }
    public void setIpHost(String ipHost) {
        this.ipHost = ipHost;
    }
    public String getPuerto() {
        return puerto;
    }
    public void setPuerto(String puerto) {
        this.puerto = puerto;
    }
    public String getBasedatos() {
        return basedatos;
    }
    public void setBasedatos(String basedatos) {
        this.basedatos = basedatos;
    }
    public String getUsuario() {
        return usuario;
    }
    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }
    public String getContrasena() {
        return contrasena;
    }
    public void setContrasena(String contrasena) {
        this.contrasena = contrasena;
    }
    public String getGestor() {
        return gestor;
    }
    public void setGestor(String gestor) {
        this.gestor = gestor;
    }
}

Archivos Properties:

MYSQL:
# To change this template, choose Tools | Templates
# and open the template in the editor.
usuario=root
contrasena=toor
iphost=192.168.1.124
puerto=3306
namedb=celltower
gestor=MYSQL

ORACLE:
# To change this template, choose Tools | Templates
# and open the template in the editor.
usuario=sysloquesea
contrasena=sysloquesea
iphost=192.168.1.124
puerto=1521
namedb=orcl
gestor=ORACLE

POSTGRES:
# To change this template, choose Tools | Templates
# and open the template in the editor.
usuario=postgres
contrasena=toor
iphost=192.168.1.124
puerto=5432
namedb=tumi
gestor=POSTGRES

SQLSERVER:
# To change this template, choose Tools | Templates
# and open the template in the editor.
usuario=SA
contrasena=
iphost=192.168.1.70
puerto=1433
namedb=appdevel
gestor=SQLSERVER

Necesitamos la Clase Conexion:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.develtrex.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
/**
 *
 * @author007M
 */
public class Conexion {
    private Connection cnx;
    private String ipHost;
    private String puerto;
    private String baseDatos;
    private String usuario;
    private String contrasena;
    private String cadenaConexion;
    private String gestorBD;
    private String driver;
    public Conexion(
            String paramIpHost,
            String paramPuerto,
            String paramBaseDatos,
            String paramUsuario,
            String paramContrasena,
            String paramGestorBD) {
        this.ipHost = paramIpHost;
        this.puerto = paramPuerto;
        this.baseDatos = paramBaseDatos;
        this.usuario = paramUsuario;
        this.contrasena = paramContrasena;
        this.gestorBD = paramGestorBD;
        if (gestorBD.equalsIgnoreCase("ORACLE")) {
            this.cadenaConexion = "jdbc:oracle:thin:@" + ipHost + ":" + puerto + ":" + baseDatos;
            this.driver = "oracle.jdbc.OracleDriver";
        } else if (gestorBD.equalsIgnoreCase("MYSQL")) {
            this.cadenaConexion = "jdbc:mysql://" + ipHost + ":" + puerto + "/" + baseDatos;
            this.driver = "com.mysql.jdbc.Driver";
        } else if(gestorBD.equalsIgnoreCase("POSTGRES")){
            this.cadenaConexion = "jdbc:postgresql://" + ipHost + ":" + puerto + "/" + baseDatos;
            this.driver = "org.postgresql.Driver";
        }else if(this.gestorBD.equalsIgnoreCase("SQLSERVER")){
            this.cadenaConexion = "jdbc:sqlserver://" + ipHost + ":" + puerto + ";DatabaseName=" + baseDatos;
            this.driver = "com.microsoft.sqlserver.jdbc.SQLServerDriver";
        }else {
            System.err.println("No existe implementacion para ese gestor");
        }
    }
    public boolean conectarBD() throws ClassNotFoundException, InstantiationException, IllegalAccessException, SQLException {
        try {
            Class.forName(this.driver).newInstance();
            cnx = DriverManager.getConnection(cadenaConexion, usuario, contrasena);
            cnx.setTransactionIsolation(Connection.TRANSACTION_READ_COMMITTED);
            cnx.setAutoCommit(false);
            return true;
        } catch (ClassNotFoundException ex) {
            System.err.println("causa: " + ex.getCause());
            System.err.println("Mensaje: " + ex.getMessage());
            System.err.println("Localizacion: " + ex.getLocalizedMessage());
            System.err.println("Traza: " + ex.getStackTrace());
            throw ex;
        } catch (InstantiationException ex) {
            System.err.println("causa: " + ex.getCause());
            System.err.println("Mensaje: " + ex.getMessage());
            System.err.println("Localizacion: " + ex.getLocalizedMessage());
            System.err.println("Traza: " + ex.getStackTrace());
            throw ex;
        } catch (IllegalAccessException ex) {
            System.err.println("causa: " + ex.getCause());
            System.err.println("Mensaje: " + ex.getMessage());
            System.err.println("Localizacion: " + ex.getLocalizedMessage());
            System.err.println("Traza: " + ex.getStackTrace());
            throw ex;
        } catch (SQLException ex) {
            System.err.println("causa: " + ex.getCause());
            System.err.println("Mensaje: " + ex.getMessage());
            System.err.println("Localizacion: " + ex.getLocalizedMessage());
            System.err.println("Traza: " + ex.getStackTrace());
            throw ex;
        }
    }
    public boolean desconectarBD() throws SQLException {
        try {
            cnx.close();
            return true;
        } catch (SQLException ex) {
            System.err.println("causa: " + ex.getCause());
            System.err.println("Mensaje: " + ex.getMessage());
            System.err.println("Localizacion: " + ex.getLocalizedMessage());
            System.err.println("Traza: " + ex.getStackTrace());
            throw ex;
        }
    }
    public boolean confirmar() throws SQLException {
        try {
            cnx.commit();
            return true;
        } catch (SQLException ex) {
            System.err.println("causa: " + ex.getCause());
            System.err.println("Mensaje: " + ex.getMessage());
            System.err.println("Localizacion: " + ex.getLocalizedMessage());
            System.err.println("Traza: " + ex.getStackTrace());
            throw ex;
        }
    }
    public boolean deshacer() throws SQLException {
        try {
            cnx.rollback();
            return true;
        } catch (SQLException ex) {
            System.err.println("causa: " + ex.getCause());
            System.err.println("Mensaje: " + ex.getMessage());
            System.err.println("Localizacion: " + ex.getLocalizedMessage());
            System.err.println("Traza: " + ex.getStackTrace());
            throw ex;
        }
    }
    public Connection getCnx() {
        return cnx;
    }
    public void setCnx(Connection cnx) {
        this.cnx = cnx;
    }
    public String getIpHost() {
        return ipHost;
    }
    public void setIpHost(String ipHost) {
        this.ipHost = ipHost;
    }
    public String getPuerto() {
        return puerto;
    }
    public void setPuerto(String puerto) {
        this.puerto = puerto;
    }
    public String getBaseDatos() {
        return baseDatos;
    }
    public void setBaseDatos(String baseDatos) {
        this.baseDatos = baseDatos;
    }
    public String getUsuario() {
        return usuario;
    }
    public void setUsuario(String usuario) {
        this.usuario = usuario;
    }
    public String getContrasena() {
        return contrasena;
    }
    public void setContrasena(String contrasena) {
        this.contrasena = contrasena;
    }
    public String getCadenaConexion() {
        return cadenaConexion;
    }
    public void setCadenaConexion(String cadenaConexion) {
        this.cadenaConexion = cadenaConexion;
    }
    public String getGestorBD() {
        return gestorBD;
    }
    public void setGestorBD(String gestorBD) {
        this.gestorBD = gestorBD;
    }
    public String getDriver() {
        return driver;
    }
    public void setDriver(String driver) {
        this.driver = driver;
    }
}
Ejecutando un Test:

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.develtrex.tester;
import com.develtrex.dao.Conexion;
import com.develtrex.dao.ReadProperties;
import com.develtrex.util.Ruta;
import java.io.IOException;
import java.sql.SQLException;
/**
 *
 * @author 007M
 */
public class Tester {
    public static void main(String arg[]) throws ClassNotFoundException, ClassNotFoundException, InstantiationException, InstantiationException, IllegalAccessException, SQLException, IOException {
        Ruta src = new Ruta();
        ReadProperties rdOracle = new ReadProperties(src.getFileDbOracle());
        ReadProperties rdMysql = new ReadProperties(src.getFileDbMysql());
        ReadProperties rdPostgres = new ReadProperties(src.getFileDbPostgres());
        ReadProperties rdSqlServer = new ReadProperties(src.getFileDbSqlServer());
        Conexion cnxOracle = new Conexion(
                rdOracle.getIpHost(),
                rdOracle.getPuerto(),
                rdOracle.getBasedatos(),
                rdOracle.getUsuario(),
                rdOracle.getContrasena(),
                rdOracle.getGestor());
        Conexion cnxMysql = new Conexion(
                rdMysql.getIpHost(),
                rdMysql.getPuerto(),
                rdMysql.getBasedatos(),
                rdMysql.getUsuario(),
                rdMysql.getContrasena(),
                rdMysql.getGestor());
        System.out.println("ORACLE: " + cnxOracle.conectarBD());
        System.out.println("MYSQL: " + cnxMysql.conectarBD());
        /* .. continua tu con las demaàs */
    }
}

Comentarios

Entradas más populares de este blog

El acta de constitución para proyectos de desarrollo software Ágil o Clásico

Cualquier proyecto de software debe tener un documento que permita formalizar el inicio de un proyecto.
Aquí proporciono un ejemplo.
Debes saber que el acta es un documento incremental que algunas secciones se van actualizando cuando se van realizando las actividades que permiten completarlas.

Información general
Enunciado del proyecto: DOCUMENTO ET. ID del proyecto: SCMF Sponsor: JNE Representante del sponsor:


Interesados del proyectoCargo Nombre/Organización Teléfono E-mail Representante del Sponsor


Program Manager

Project Manager


Empresa Asociada JURADO NACIONAL DE ELECCIONES


Usuario ò Cliente FISCALIZADORES










Instalando Oracle SQL Developer 4.x en CentOS 7

Saludos. Soy @jofrantoba. En este post de enseñare a instalar Oracle SQL Developer 4.x en CentOS 7.Paso 1: Ir a la pagina de Oracle, especificamente al producto Oracle SQL Developer 4.xhttp://www.oracle.com/technetwork/developer-tools/sql-developer/overview/index-097090.htmlPaso 2: Dar click en "Download" y en la página seleccionar el paquete RPM que se muestra a continuación:Paso 3: Al hacer click en "Download" le saldra una ventana emergente como la imagen siguiente:Paso 4: Instalando el paquete RPM de Oracle SQL DeveloperPaso 5: Verificando Instalación, haciendo click en el menú aplicaciones,programación y luego en el icono de Oracle SQL Developer.Lo siguiente ya es historia, tu mismo lo descubrirás.Bueno esto sería todo.Si tienes algún tema que sugerir dejalo en los comentarios. Hasta pronto!!!Atte @jofrantoba