Commit DAO y conexion

This commit is contained in:
NataliaCancinoV 2024-04-29 00:36:41 -06:00
parent 70817a4176
commit be8ece40d6
6 changed files with 347 additions and 1 deletions

View File

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

View File

@ -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<Usuario> dameUsuarios() {
Statement stm = null;
ResultSet rs = null;
Connection conn = null;
List<Usuario> 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);
}
}
}
}

View File

@ -1,4 +1,4 @@
package main.java.mx.uv; package mx.uv;
public class Usuario { public class Usuario {
String id; String id;

Binary file not shown.

Binary file not shown.

Binary file not shown.