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 */
    }
}

Entradas más populares de este blog

Registrar driver oracle en iReport 3.7.1

Esta entrada la estoy escribiendo porque en algún momento necesite conectar ireport con mi base de oracle, para asi poder crear reportes, además aquí tambien se registran los archivos Jar para ordenar las columnas de un crosstab, pero esto lo explicare en otra entrada.
Bueno comenzemos, primero que nada abra su ireport la versión que tuviese. Luego de esto solo seguir todos los pantallazos que colocaré.
fig 1: Drivers para conexión a bases de datos.
En la fig1 se muestran todos lo drivers con los cuales se establece la conexión a base de datos a través de ireport, como se puede observar hay drivers de color rojo y negro, los negros están activos y los rojos son los drivers que aún no han sido registrados, en esta ocasión vamos a registrar el driver para conectarnos a una base de datos oracle.
Registrando el driver de oracle:
fig 2: Pestaña herramientas, subitem opciones
Una vez que hacemos click en el item Opciones nos saldra una ventana como la imagen de la fig 3.
fig 3: Ventana …

Instalando Open Broadcaster Software en CentOS 7

Saludos. Soy @jofrantoba. En este post te enseñare a instalar el OBS Studio el cual te permitira hacer grabaciones de audio y video, asi como también realizar Streaming a través de facebook, youtube y otros.

Paso 1: Instalar repositorio EPEL
En este enlace podrás encontrar el post de como hacerlo http://kiongotechnology.com/i-d/vblogdev/4-instalar-repo-epel-release-en-centos-7
Paso 2: Instalar repositorio RPM Fusion
En este enlace podrás encontrar el post de como hacerlo http://kiongotechnology.com/i-d/vblogdev/5-instalar-repo-rpmfusion-en-centos-7
Paso 3: Instalar repositorio Nux Desktop x86_64
En este enlace podrás encontrar el post de como hacerlo http://kiongotechnology.com/i-d/vblogdev/8-instalando-nux-desktop-x86-64-en-centos7
Paso 4: Instalar las siguientes librerias con el siguiente comando ejecutado en tu terminal
sudo yum install gcc gcc-c++ gcc-objc cmake git

Paso 5: Instalar las siguiente dependencias de OBS Studio ejecutando el siguiente comando en tu terminal

sudo yum install lib…