diff --git a/backend/src/main/java/mx/uv/Conexion.java b/backend/src/main/java/mx/uv/Conexion.java new file mode 100644 index 0000000..d465c86 --- /dev/null +++ b/backend/src/main/java/mx/uv/Conexion.java @@ -0,0 +1,26 @@ +package mx.uv; + +import java.sql.Connection; +import java.sql.DriverManager; +import java.sql.SQLException; + +public class Conexion { + private static String url = "jdbc:mysql://127.0.0.1:3306/?user=pastel"; + private static String driverName = "com.mysql.cj.jdbc.Driver"; + private static String username = "pastel"; + private static String password = "pastel"; + // variable de conexion + private static Connection connection = null; + + public static Connection getConnection(){ + try { + Class.forName(driverName); + connection = DriverManager.getConnection(url, username, password); + } catch (SQLException e) { + System.out.println(" SQL:" + e); + } catch (ClassNotFoundException e){ + System.out.println("Driver:" + e); + } + return connection; + } +} \ No newline at end of file diff --git a/backend/src/main/java/mx/uv/DAO.java b/backend/src/main/java/mx/uv/DAO.java new file mode 100644 index 0000000..aee3d70 --- /dev/null +++ b/backend/src/main/java/mx/uv/DAO.java @@ -0,0 +1,320 @@ +package mx.uv; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Statement; +import java.sql.PreparedStatement; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.List; + +// Data Access Object +public class DAO { + // en el dao se establece la conexion a la BD + private static Conexion c = new Conexion(); + // este metodo regresa un conjunto de usuarios que cumpla un criterio + public static List dameUsuarios() { + Statement stm = null; + ResultSet rs = null; + Connection conn = null; + + List resultado = new ArrayList<>(); + + conn = Conexion.getConnection(); + + try { + String sql = "SELECT * from usuarios"; + stm = (Statement) conn.createStatement(); + rs = stm.executeQuery(sql); + while (rs.next()) { + Usuario u = new Usuario(rs.getString("id"), rs.getString("correo"), rs.getString("password"), rs.getString("nombre")); + resultado.add(u); + } + } catch (Exception e) { + System.out.println(e); + } finally { + if (rs != null) + try { + rs.close(); + } catch (SQLException e) { + System.out.println(e); + } + rs = null; + if (stm != null) { + try { + stm.close(); + } catch (Exception e) { + System.out.println(e); + } + stm = null; + } + try { + conn.close(); + } catch (Exception e) { + System.out.println(e); + } + } + + return resultado; + } + + public static String crearUsuario(Usuario u) { + PreparedStatement stm = null; + Connection conn = null; + String msj = ""; + + conn = Conexion.getConnection(); + try { + String sql = "INSERT INTO usuarios (id, correo, password,nombre) values (?,?,?,?)"; + stm = (PreparedStatement) conn.prepareStatement(sql); + stm.setString(1, u.getId()); + stm.setString(2, u.getCorreo()); + stm.setString(3, u.getPassword()); + stm.setString(4, u.getNombre()); + if (stm.executeUpdate() > 0) + msj = "usuario agregado"; + else + msj = "usuario no agregado"; + + } catch (Exception e) { + System.out.println(e); + } finally { + if (stm != null) { + try { + stm.close(); + } catch (Exception e) { + System.out.println(e); + } + stm = null; + } + try { + conn.close(); + } catch (Exception e) { + System.out.println(e); + } + } + return msj; + } + + public static boolean validarUsuario(String correo, String password) { + PreparedStatement stm = null; + Connection conn = null; + + conn = Conexion.getConnection(); + try { + String sql = "SELECT * FROM usuarios WHERE correo = ? AND password = ?"; + stm = conn.prepareStatement(sql); + stm.setString(1, correo); + stm.setString(2, password); + + ResultSet rs = stm.executeQuery(); + + return rs.next(); // Devuelve true si hay una coincidencia, false si no hay coincidencia + + } catch (Exception e) { + System.out.println(e); + return false; // Manejar adecuadamente las excepciones en tu aplicación real + } finally { + // Cerrar recursos + if (stm != null) { + try { + stm.close(); + } catch (Exception e) { + System.out.println(e); + } + } + try { + conn.close(); + } catch (Exception e) { + System.out.println(e); + } + } + } + + public static boolean correoExistente(String correo) { + PreparedStatement stm = null; + Connection conn = null; + + conn = Conexion.getConnection(); + try { + String sql = "SELECT * FROM usuarios WHERE correo = ?"; + stm = conn.prepareStatement(sql); + stm.setString(1, correo); + + ResultSet rs = stm.executeQuery(); + + return rs.next(); // Devuelve true si hay una coincidencia (correo existente), false si no hay coincidencia + + } catch (Exception e) { + System.out.println(e); + return false; // Manejar adecuadamente las excepciones en tu aplicación real + } finally { + // Cerrar recursos + if (stm != null) { + try { + stm.close(); + } catch (Exception e) { + System.out.println(e); + } + } + try { + conn.close(); + } catch (Exception e) { + System.out.println(e); + } + } + } + + public static boolean existeUsuarioPorCorreo(String correo) { + PreparedStatement stm = null; + Connection conn = null; + + conn = Conexion.getConnection(); + try { + String sql = "SELECT COUNT(*) as num_usuarios FROM usuarios WHERE correo = ?"; + stm = conn.prepareStatement(sql); + stm.setString(1, correo); + + ResultSet rs = stm.executeQuery(); + + if (rs.next()) { + return rs.getInt("num_usuarios") > 0; // Devuelve true si existe al menos un usuario con ese correo + } else { + return false; // Devuelve false si no hay usuarios con ese correo + } + + } catch (Exception e) { + System.out.println(e); + return false; // Manejar adecuadamente las excepciones en tu aplicación real + } finally { + // Cerrar recursos + if (stm != null) { + try { + stm.close(); + } catch (Exception e) { + System.out.println(e); + } + } + try { + conn.close(); + } catch (Exception e) { + System.out.println(e); + } + } + } + + public static String cambiarContrasena(String correo, String nuevaContrasena) { + String mensaje = ""; + + try (Connection conn = Conexion.getConnection(); + PreparedStatement stm = conn.prepareStatement("UPDATE usuarios SET password = ? WHERE correo = ?")) { + + // Verificar si el usuario existe + if (existeUsuarioPorCorreo(correo)) { + stm.setString(1, nuevaContrasena); + stm.setString(2, correo); + + if (stm.executeUpdate() > 0) { + mensaje = "Contraseña actualizada correctamente"; + } else { + mensaje = "No se pudo actualizar la contraseña"; + } + } else { + mensaje = "Usuario no encontrado"; + } + + } catch (SQLException e) { + // Manejo de excepciones (puedes personalizar este manejo según tus necesidades) + mensaje = "Error al actualizar la contraseña"; + e.printStackTrace(); // O registra la excepción en un sistema de registro + } + + return mensaje; + } + + public static String obtenerIdUsuario(String correo, String password) { + PreparedStatement stm = null; + Connection conn = null; + + conn = Conexion.getConnection(); + try { + String sql = "SELECT id FROM usuarios WHERE correo = ? AND password = ?"; + stm = conn.prepareStatement(sql); + stm.setString(1, correo); + stm.setString(2, password); + + ResultSet rs = stm.executeQuery(); + + if (rs.next()) { + return rs.getString("id"); // Devuelve el ID si hay una coincidencia + } else { + return "falso"; // Devuelve -1 si no hay coincidencia + } + + } catch (Exception e) { + System.out.println(e); + return "falso"; // Manejar adecuadamente las excepciones en tu aplicación real + } finally { + // Cerrar recursos + if (stm != null) { + try { + stm.close(); + } catch (Exception e) { + System.out.println(e); + } + } + try { + conn.close(); + } catch (Exception e) { + System.out.println(e); + } + } + } + + public static Usuario obtenerDatosUsuario(String id) { + PreparedStatement stm = null; + Connection conn = null; + + conn = Conexion.getConnection(); + try { + String sql = "SELECT * FROM usuarios WHERE id = ?"; + stm = conn.prepareStatement(sql); + stm.setString(1, id); + + ResultSet rs = stm.executeQuery(); + + if (rs.next()) { + // Crear un objeto Usuario con los datos del usuario + Usuario usuario = new Usuario(); + usuario.setId(rs.getString("id")); + usuario.setCorreo(rs.getString("correo")); + usuario.setPassword(rs.getString("password")); + usuario.setNombre(rs.getString("nombre")); + // Agregar más campos según tu estructura de base de datos + + return usuario; + } else { + return null; // Devuelve null si no hay coincidencia + } + + } catch (Exception e) { + System.out.println(e); + return null; // Manejar adecuadamente las excepciones en tu aplicación real + } finally { + // Cerrar recursos + if (stm != null) { + try { + stm.close(); + } catch (Exception e) { + System.out.println(e); + } + } + try { + conn.close(); + } catch (Exception e) { + System.out.println(e); + } + } + } + +} \ No newline at end of file diff --git a/backend/src/main/java/mx/uv/Usuario.java b/backend/src/main/java/mx/uv/Usuario.java index 3d9d740..0f56621 100644 --- a/backend/src/main/java/mx/uv/Usuario.java +++ b/backend/src/main/java/mx/uv/Usuario.java @@ -1,4 +1,4 @@ -package main.java.mx.uv; +package mx.uv; public class Usuario { String id; diff --git a/backend/target/classes/mx/uv/Conexion.class b/backend/target/classes/mx/uv/Conexion.class new file mode 100644 index 0000000..90fa057 Binary files /dev/null and b/backend/target/classes/mx/uv/Conexion.class differ diff --git a/backend/target/classes/mx/uv/DAO.class b/backend/target/classes/mx/uv/DAO.class new file mode 100644 index 0000000..648d8fc Binary files /dev/null and b/backend/target/classes/mx/uv/DAO.class differ diff --git a/backend/target/classes/mx/uv/Usuario.class b/backend/target/classes/mx/uv/Usuario.class new file mode 100644 index 0000000..1019abb Binary files /dev/null and b/backend/target/classes/mx/uv/Usuario.class differ