Un saludo a todos quienes lean este post.
Deseo compartir con ustedes una clase para poder conectarse
desde Java a cualquier base de datos.
Ante todo espero les se de utilidad.
Manos a la Obra.
Crear un paquete para almacenar las clases de la conexión.
La clase Global:
Esta clase contiene los parámetros de configuración. Si
desean conectarse a otro motor de base de datos
package com.AccesoDatos.Conexion;
public class Global {
public static
String driverClass = "com.mysql.jdbc.Driver";
public static
String databaseURL = "jdbc:mysql://127.0.0.1:3306/camdb";
public static
String usuarioDB = "Admin1";
public static
String claveDB = "123456789";
}
Si desean conectarse con PostgreSQL modificar:
public static
String driverClass = "org.postgresql.Driver";
public static
String databaseURL = "jdbc:postgresql://127.0.0.1:5432/DGC";
Clase Parámetros
Con esta clase podremos enviar un listado de parámetros a
una sentencia SQL que deseamos que se ejecute en nuestra base de datos.
package com.AccesoDatos.Conexion;
public class Parametros {
private int posicion;
//indica la posicion del parametro
private Object valor;
//indica el valor del parametro
private int tipoDato;
//un valor entero que muestra el tipo de dato compatible con datos SQL
se obtiene de Types.[tipo dato]
public Parametros(int posicion, Object valor, int tipoDato)
{
this.posicion = posicion;
this.valor = valor;
this.tipoDato = tipoDato;
}
public int getPosicion() {
return posicion;
}
public void setPosicion(int posicion) {
this.posicion = posicion;
}
public Object getValor() {
return valor;
}
public void setValor(Object valor) {
this.valor = valor;
}
public int getTipoDato() {
return tipoDato;
}
public void setTipoDato(int tipoDato) {
this.tipoDato = tipoDato;
}
}
Clase
AccesoDatos
Esta clase es la que se conectará con la base de datos,
contiene los métodos necesarios para operar con el motor de base de datos.
package com.AccesoDatos.Conexion;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.Iterator;
public class AccesoDatos {
private Connection
cnn;
private ResultSet
rs;
private Exception
error;
public
AccesoDatos() {
this.cnn =
null;
this.error =
null;
}
/**
* @return the
error
*/
public Exception
getError() {
return error;
}
/**
* @return the rs
*/
public ResultSet
getRs() {
return rs;
}
public void
AutocommitTrue() throws SQLException{
this.cnn.setAutoCommit(true);
}
public void
AutocommitFalse() throws SQLException{
this.cnn.setAutoCommit(false);
}
public void
Commit() throws SQLException{
this.cnn.commit();
}
public void
Rollback() throws SQLException{
this.cnn.rollback();
}
public Byte
Conectar() {
Byte result =
0;
try {
java.lang.Class.forName(com.AccesoDatos.Conexion.Global.driverClass);
result =
1;
this.cnn =
DriverManager.getConnection(com.AccesoDatos.Conexion.Global.databaseURL,
com.AccesoDatos.Conexion.Global.usuarioDB,
com.AccesoDatos.Conexion.Global.claveDB);
result =
2;
} catch
(SQLException e) {
System.err.println("ERROR: " + e.getClass().getName() + "
*** " + e.getMessage());
this.error
= e;
} finally {
return
result;
}
}
public Byte
Desconectar() {
Byte result =
0;
try {
this.cnn.close();
this.cnn =
null;
result =
1;
} catch
(SQLException e) {
System.err.println("ERROR: "
+ e.getClass().getName() + " *** " + e.getMessage());
this.error
= e;
} finally {
return
result;
}
}
public Byte
EjecutarSQL(String SQL) {
Byte result =
0;
try {
Statement
smt = this.cnn.createStatement();
this.rs =
smt.executeQuery(SQL);
result =
1;
} catch
(SQLException e) {
System.err.println("ERROR: " + e.getClass().getName() + "
*** " + e.getMessage());
this.error
= e;
} finally {
return
result;
}
}
public Byte
EjecutarSQL(String SQL, ArrayList<Parametros> lstPatametros) {
Byte result =
0;
try {
PreparedStatement smt = this.cnn.prepareStatement(SQL);
Iterator<Parametros> Itr = lstPatametros.iterator();
while
(Itr.hasNext()) {
Parametros p = Itr.next();
smt.setObject(p.getPosicion(), p.getValor(), p.getTipoDato());
}
this.rs =
smt.executeQuery();
result =
1;
} catch
(SQLException e) {
System.err.println("ERROR: " + e.getClass().getName() + "
*** " + e.getMessage());
this.error
= e;
} finally {
return
result;
}
}
public Byte
EjecutarUpdate(String SQL) {
Byte result =
0;
try {
PreparedStatement smt = this.cnn.prepareStatement(SQL);
smt.executeUpdate();
result =
1;
} catch
(SQLException e) {
System.err.println("ERROR: " + e.getClass().getName() + "
*** " + e.getMessage());
this.error
= e;
} finally {
return
result;
}
}
public Byte
EjecutarUpdate(String SQL, ArrayList<Parametros> lstPatametros) {
Byte result =
0;
try {
PreparedStatement smt = this.cnn.prepareStatement(SQL);
Iterator<Parametros> Itr = lstPatametros.iterator();
while
(Itr.hasNext()) {
Parametros p = Itr.next();
smt.setObject(p.getPosicion(), p.getValor(), p.getTipoDato());
}
smt.executeUpdate();
result =
1;
} catch
(SQLException e) {
System.err.println("ERROR: " + e.getClass().getName() + "
*** " + e.getMessage());
this.error
= e;
} finally {
return
result;
}
}
}
