Con tecnología de Blogger.

CLASE PARA CONEXIÓN EN JAVA CON CUALQUIER MOTOR DE BASE DE DATOS

martes, 11 de noviembre de 2014

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.


Vamos a crear tres clases 


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;
        }
    }

}

No hay comentarios.:

Publicar un comentario

 

Blogger news

Blogroll

Most Reading