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 */
}
}
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
Publicar un comentario