import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
import java.sql.*;
/**
*
* @author Jorge Luis Perez Canto
*/
import pqSecurity.SecurityInterface;
public class Transactions {
private Conexion conexionClass;
private Connection conexion;
private Statement sentencia;
private String cadenaSQL;
private SecurityInterface sI = new SecurityInterface();
public Transactions() {
this.conexionClass = new Conexion();
sentencia = null;
}
public void conectar() {
try {
this.conexion = this.conexionClass.getConexion();
if (sentencia != null) {
sentencia.close();
sentencia = null;
}
} catch (SQLException e) {
System.out.println("SQLException: No se puede establecer conección con el servidor");
System.out.println(e.getMessage());
e.printStackTrace();
} catch (Exception e) {
System.out.println("Exception: No se puede establecer conección con el servidor");
System.out.println(e.toString());
e.printStackTrace();
}
}
public void buscar(String tabla) {
conectar();
boolean r = false;
Statement miStatement = null;
ResultSet rs = null;
try {
System.out.println("Iniciando la busqueda de datos...");
miStatement = this.conexionClass.getConexion().createStatement();
String cadena = "SELECT * FROM " + tabla + "";
System.out.println(cadena);
rs = miStatement.executeQuery(cadena);
if (rs != null) {
while (rs.next()) {
System.out.println("ID: " + rs.getString("id") + " NOMBRE: " + rs.getString("nombre") + " APELLIDO: " + rs.getString("apellido") + "");
}
}
} catch (SQLException e) {
System.out.println("Ocurrio un error al intentar realizar la operación.");
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
cerrarResultSet(rs);
cerrarPstmt(miStatement);
closeConnection();
}
}
public boolean buscar(String tabla, String id) {
conectar();
boolean r = false;
Statement miStatement = null;
ResultSet rs = null;
try {
System.out.println("Iniciando la busqueda de datos...");
miStatement = this.conexionClass.getConexion().createStatement();
String cadena = "SELECT * FROM " + tabla + " WHERE id='" + id + "'";
System.out.println(cadena);
rs = miStatement.executeQuery(cadena);
if (rs != null) {
if (rs.next()) {
r = true;
System.out.println("ID: " + rs.getString("id") + " NOMBRE: " + rs.getString("nombre") + " APELLIDO: " + rs.getString("apellido") + "");
} else {
System.out.println("Los datos solicitados no existen en la tabla: " + tabla);
r = false;
}
}
} catch (SQLException e) {
System.out.println("Ocurrio un error al intentar realizar la operación.");
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
cerrarResultSet(rs);
cerrarPstmt(miStatement);
closeConnection();
}
return r;
}
// INSERTAR:
public void insertarUsuario(String tabla, String id, String nombre, String apellido, String login, String password, String sessionid) {
conectar();
String estado = "";
Statement miStatement = null;
if (buscar(tabla, id) == false) {
System.out.println("Procediendo el proceso de inserción...");
try {
System.out.println("Iniciando la inserción...");
miStatement = this.conexionClass.getConexion().createStatement();
String cadena = "INSERT INTO " + tabla + " (ID, NOMBRE, APELLIDO, LOGIN, SESSIONID, PASSWORD) VALUES ('" + id + "', '" + nombre + "', '" + apellido + "', '" + login + "', '" + sessionid + "', '" + password + "')";
System.out.println(cadena);
miStatement.executeUpdate(cadena);
System.out.println("Datos insertados correctamente.");
} catch (SQLException e) {
System.out.println(e.getMessage());
} catch (Exception e) {
System.out.println(e.getMessage());
} finally {
cerrarPstmt(miStatement);
closeConnection();
}
} else {
System.out.println("No se puede realizar la inserción porque ya existe un registro con el mismo ID");
}
}
// ACTUALIZAR:
public void modificarUsuario(String tabla, String id, String nombre, String apellido, String login, String password, String sessionid) {
conectar();
Statement miStatement = null;
if (buscar(tabla, id)) {
conectar();
String cadena = "UPDATE " + tabla + " SET nombre='" + nombre + "', apellido='" + apellido + "', login='" + login + "', password='" + password + "', sessionid='" + sessionid + "' WHERE id='" + id + "'";
System.out.println(cadena);
try {
System.out.println("Iniciando el proceso de actualización...");
miStatement = this.conexionClass.getConexion().createStatement();
miStatement.executeUpdate(cadena);
System.out.println("Datos actualizados correctamente.");
} catch (SQLException e) {
System.out.println(e.getMessage());;
} finally {
cerrarPstmt(miStatement);
closeConnection();
}
} else {
System.out.println("No se puede realizar la actualización porque no existe ningún registro con ese número de ID.");
}
}
// ELIMINAR:
public String eliminarUsuario(String tabla, String id) {
String estado = null;
if (buscar(tabla, id)) {
conectar();
PreparedStatement pstmt = null;
Statement miStatement = null;
String cadena = "DELETE FROM " + tabla + " WHERE id='" + id + "'";
try {
System.out.println("Iniciando el proceso de eliminación...");
miStatement = this.conexionClass.getConexion().createStatement();
miStatement.executeUpdate(cadena);
System.out.println("Datos eliminados exitosamente.");
} catch (SQLException e) {
estado = e.getMessage();
} finally {
cerrarPstmt(miStatement);
closeConnection();
}
} else {
System.out.println("No se puede realizar la eliminación porque no existe ningún registro con ese número de ID.");
}
return estado;
}
// OTROS MÉTODOS
private void cerrarSentencia(Statement sentencia) {
if (sentencia != null) {
try {
sentencia.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
sentencia = null;
}
}
private void cerrarResultSet(ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
private void cerrarPstmt(PreparedStatement pstmt) {
if (pstmt != null) {
try {
pstmt.close();
pstmt = null;
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
private void cerrarPstmt(Statement pstmt) {
if (pstmt != null) {
try {
pstmt.close();
pstmt = null;
} catch (SQLException e) {
System.out.println(e.getMessage());
}
}
}
public void cerrarConexion() {
if (this.conexion != null) {
try {
//this.conexion.close();
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
}
protected void closeConnection() {
try {
if (this.conexion != null) {
//this.conexion.close();
}
} catch (Exception e) {
System.out.println(e.getMessage());
}
}
public List<Map<String, Object>> obtenerArregloResultados(ResultSet rs) {
List<Map<String, Object>> rows = new ArrayList<Map<String, Object>>();
ResultSetMetaData metaData = null;
int columnCount = 0;
try {
metaData = rs.getMetaData();
columnCount = metaData.getColumnCount();
while (rs.next()) {
Map<String, Object> columns = new LinkedHashMap<String, Object>();
for (int i = 1; i <= columnCount; i++) {
columns.put(metaData.getColumnLabel(i), rs.getObject(i));
}
rows.add(columns);
}
} catch (SQLException e) {
System.out.println("Error al intentar convertir un ResultSet a un Arreglo.");
System.out.println(e.getMessage());
} finally {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
return rows;
}
public List<Map<String, Object>> sesion(String tabla, String usuario, String password) {
conectar();
Statement miStatement = null;
ResultSet result = null;
List<Map<String, Object>> rs = null;
String cadena = "SELECT id, login, password FROM " + tabla + " WHERE login="+usuario+" AND password="+password+"";
try {
System.out.println("Iniciando la verificación de credenciales...");
miStatement = this.conexionClass.getConexion().createStatement();
System.out.println(cadena);
result = miStatement.executeQuery(cadena);
if (result != null) {
rs = obtenerArregloResultados(result);
}
if (result != null) {
if (result.next()) {
System.out.println("ID: " + result.getString("id") + " NOMBRE: " + result.getString("nombre") + " APELLIDO: " + result.getString("apellido") + "");
} else {
System.out.println("Los datos solicitados no existen en la tabla: " + tabla);
}
}
} catch (SQLException e) {
System.out.println("Ocurrio un error al intentar comprobar credenciales.");
System.out.println(e.getMessage());
e.printStackTrace();
} catch (Exception e) {
System.out.println("Ocurrio un error al intentar comprobar credenciales.");
System.out.println(e.getMessage());
e.printStackTrace();
} finally {
cerrarResultSet(result);
cerrarPstmt(miStatement);
closeConnection();
}
return rs;
}
}
No hay comentarios.:
Publicar un comentario