0% encontró este documento útil (0 votos)
3 vistas6 páginas

JAVA - SQL

El documento presenta una clase Java que gestiona la conexión a una base de datos MySQL y realiza operaciones CRUD sobre una tabla de usuarios. Incluye métodos para buscar, agregar, borrar y actualizar registros de usuarios, así como la conversión de resultados a formato JSON. Se manejan excepciones y se asegura la desconexión de la base de datos tras las operaciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
3 vistas6 páginas

JAVA - SQL

El documento presenta una clase Java que gestiona la conexión a una base de datos MySQL y realiza operaciones CRUD sobre una tabla de usuarios. Incluye métodos para buscar, agregar, borrar y actualizar registros de usuarios, así como la conversión de resultados a formato JSON. Se manejan excepciones y se asegura la desconexión de la base de datos tras las operaciones.
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como DOCX, PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 6

JAVA - SQL

package ar.cac;

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

import java.util.ArrayList;
import java.util.logging.Level;
import java.util.logging.Logger;

import javax.swing.JOptionPane;

import com.fasterxml.jackson.databind.ObjectMapper; //JSON ejemplo del profe


import java.sql.Statement;

public class sql {


/* ----------------------------------------------------------------------------------------------------------------------
* Desde aca metodos de conexion
*/

// Establece la conexion con la DB


public static Connection conectar() {

Connection con = null;


String base = "cacusuarios"; // Nombre de la base de datos
String url = "jdbc:mysql://gara.ddns.net:3306/" + base; // Direccion, puerto y nombre de la Base de Datos
String user = "CaCTP"; // Usuario de Acceso a MySQL
String password = "Magara18"; // Password del usuario

try {
Class.forName("com.mysql.cj.jdbc.Driver");
con = DriverManager.getConnection(url, user, password);
System.out.println("Conexion Exitosa");
} catch (ClassNotFoundException | SQLException e) {
System.err.println(e);
}
return con;
}

public static void desconectar(Connection conexion) {


try{
conexion.close();
System.out.println("Desconexion Exitosa");
}catch(Exception e) {
System.err.println(e);
}
}

1
/* ----------------------------------------------------------------------------------------------------------------------
* Desde aca el CRUD
*/

//-------------------------------------Leer/Buscar Registro unico------------------------------------------------------


public static usuario buscarPorId(Integer id) {
Connection con;
ResultSet rs = null;
usuario usr = new usuario();

try {
con = conectar();
PreparedStatement ps = con.prepareStatement("(SELECT usuarios.id, usuarios.nombre, usuarios.apellido, usuarios.email, "
+
"usuarios.contrasena, usuarios.fecnac, usuarios.pais, usuarios.activo, administradores.esadmin " +
"FROM usuarios " +
"LEFT JOIN administradores ON usuarios.id=administradores.usrid " +
"WHERE (usuarios.id = ?) " +
"ORDER BY usuarios.id) ;");
ps.setInt(1, id); // introducir aca el nro de Id a buscar en la DB - el 1 significa que es el primer '?' de la linea anterior

//ResultSet rs = ps.executeQuery();
rs = ps.executeQuery();

if (rs.next()) {

//Se carga el objeto usuario con los datos recuperados de la DB

usr.id=rs.getInt("id");
usr.nombre = rs.getString("nombre");
usr.apellido = rs.getString("apellido");
usr.email = rs.getString("email");
usr.contrasena = rs.getString("contrasena");
usr.fecnac = rs.getString("fecnac");
usr.pais = rs.getString("pais");
usr.activo = rs.getBoolean("activo");
usr.admin = rs.getBoolean("esadmin");

desconectar(con);
} else {
JOptionPane.showMessageDialog(null, "No existe una persona con esa clave");
// Mensaje de ALERTA por error la linea anterior
}
} catch (SQLException e) {
//Mensaje por error en la conexion
System.err.println(e);
}
return usr;
}

2
//-------------------------------------Leer/Buscar multiples Registros ------------------------------------------------------
// para llenar el ArrayList con objetos de clase usuario, creo los atributos en usuario.javacon sus getters y setters
public static String buscarPorPatron(String patron) {
Connection con;
ResultSet rs = null;
ObjectMapper mapper = new ObjectMapper();
ArrayList<usuario> lista = new ArrayList<>();
usuario usr;

try {
con = conectar();
PreparedStatement ps = con.prepareStatement("(SELECT usuarios.id, usuarios.nombre, usuarios.apellido, usuarios.email,"
+ " usuarios.contrasena, usuarios.fecnac, usuarios.pais, usuarios.activo, administradores.esadmin " +
"FROM usuarios " +
"LEFT JOIN administradores ON usuarios.id=administradores.usrid " +
"WHERE (nombre LIKE ?) OR (apellido LIKE ?) OR (email LIKE ?) " +
"ORDER BY usuarios.id);");
ps.setString(1, "%"+patron+"%");
ps.setString(2, "%"+patron+"%");
ps.setString(3, "%"+patron+"%");
rs = ps.executeQuery();

// Leo uno a uno los registros traidos del la DB y los cargo en la lista
while (rs.next()) {
usr = new usuario();
usr.setId(rs.getInt("id"));
usr.setNombre(rs.getString("nombre"));
usr.setApellido(rs.getString("apellido"));
usr.setEmail(rs.getString("email"));
usr.setContrasena(rs.getString("contrasena"));
usr.setFecnac(rs.getString("fecnac"));
usr.setPais(rs.getString("pais"));
usr.setActivo(rs.getBoolean("activo"));
usr.setAdmin(rs.getBoolean("esadmin"));

lista.add(usr);
}
desconectar(con); //Desconecto de la DB

} catch (SQLException e) {
System.err.println(e);
}

//Crea el json
String usrJSON;
try {
usrJSON = mapper.writeValueAsString(lista);
//System.out.println(usrJSON);
return usrJSON;
} catch (Exception ex) {

3
Logger.getLogger(sql.class.getName()).log(Level.SEVERE, null, ex);
}
return "Ocurrio un error al crear json";
}

//-------------------------------------Agregar Registro------------------------------------------------------
public static void agregarRegistro(
String nombre,
String apellido,
String email,
String contrasena,
String fecnac,
String pais,
Boolean activo,
Boolean admin
){
Connection con;

try {
con = conectar();
PreparedStatement ps = con.prepareStatement("INSERT INTO usuarios (Nombre, Apellido, Email, Contrasena, FecNac, Pais,
activo) VALUES(?,?,?,?,?,?,?) ",
Statement.RETURN_GENERATED_KEYS);

ps.setString(1, nombre);
ps.setString(2, apellido);
ps.setString(3, email);
ps.setString(4, contrasena);
ps.setString(5, fecnac);
ps.setString(6, pais);
ps.setBoolean(7, activo);

int res = ps.executeUpdate();

if (res > 0) {
// Se obtiene el ID del usuario registrado
ResultSet generatedKeys = ps.getGeneratedKeys();
int usrid=-1;
if (generatedKeys.next()) {
usrid = generatedKeys.getInt(1);
}

if (admin) {
PreparedStatement ps3 = con.prepareStatement("INSERT INTO administradores (usrid, esadmin) VALUES (?,?)");
ps3.setInt(1, usrid);
ps3.setBoolean(2, admin); // admin es el valor booleano

ps3.executeUpdate();
}
}

4
desconectar(con);

} catch (SQLException e) {
System.err.println(e);
}
}

//-------------------------------------Borra Registro------------------------------------------------------
public static void borrarRegistro(Integer id) {

Connection con;
ResultSet rs1 = null;

try {
con = conectar();

//verifico primero si es admin para borrarlo de la tabla Administradores


PreparedStatement ps1 = con.prepareStatement("SELECT * FROM administradores WHERE usrid = ?");
ps1.setInt(1, id);
rs1 = ps1.executeQuery();

if (rs1.next()) { // Si hay un resultado entro por aca a borrar

System.out.println("3 - SQL Borra");


PreparedStatement ps2 = con.prepareStatement("delete from administradores where usrid = ?");
ps2.setInt(1, id);
ps2.executeUpdate();
};

//ahora borro el usuario


PreparedStatement ps = con.prepareStatement("DELETE FROM usuarios WHERE id=?");
ps.setInt(1, id); //El segundo integral es el ID que se borrara

int res = ps.executeUpdate();

desconectar(con);

} catch (NumberFormatException | SQLException e) {


System.err.println(e);
}
}

//----------------------------------------Actualiza Registro---------------------------------------------
public static void actualizaRegistro(
String nombre,
String apellido,
String email,
String contrasena,
String fecnac,
String pais,

5
Boolean activo,
Boolean admin,
Integer id
){

Connection con;
System.out.println("Actualizo registro - " + admin);
try {
con = conectar();
PreparedStatement ps = con.prepareStatement("UPDATE usuarios SET nombre=?, apellido=?, email=?, contrasena=?,
fecnac=?, pais=?, activo=? WHERE id=?");

ps.setString(1, nombre);
ps.setString(2, apellido);
ps.setString(3, email);
ps.setString(4, contrasena);
ps.setString(5, fecnac);
ps.setString(6, pais);
ps.setBoolean(7, activo);
ps.setInt(8, id);

int res = ps.executeUpdate();

compruebaAdmin(id, admin, con);

desconectar(con);

} catch (SQLException e) {
System.err.println(e);
}
}

También podría gustarte