JAVA - SQL
package [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link];
import [Link]; //JSON ejemplo del profe
import [Link];
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://[Link]/" + 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 {
[Link]("[Link]");
con = [Link](url, user, password);
[Link]("Conexion Exitosa");
} catch (ClassNotFoundException | SQLException e) {
[Link](e);
}
return con;
}
public static void desconectar(Connection conexion) {
try{
[Link]();
[Link]("Desconexion Exitosa");
}catch(Exception e) {
[Link](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 = [Link]("(SELECT [Link], [Link], [Link], [Link], "
+
"[Link], [Link], [Link], [Link], [Link] " +
"FROM usuarios " +
"LEFT JOIN administradores ON [Link]=[Link] " +
"WHERE ([Link] = ?) " +
"ORDER BY [Link]) ;");
[Link](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 = [Link]();
rs = [Link]();
if ([Link]()) {
//Se carga el objeto usuario con los datos recuperados de la DB
[Link]=[Link]("id");
[Link] = [Link]("nombre");
[Link] = [Link]("apellido");
[Link] = [Link]("email");
[Link] = [Link]("contrasena");
[Link] = [Link]("fecnac");
[Link] = [Link]("pais");
[Link] = [Link]("activo");
[Link] = [Link]("esadmin");
desconectar(con);
} else {
[Link](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
[Link](e);
}
return usr;
}
2
//-------------------------------------Leer/Buscar multiples Registros ------------------------------------------------------
// para llenar el ArrayList con objetos de clase usuario, creo los atributos en [Link] 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 = [Link]("(SELECT [Link], [Link], [Link], [Link],"
+ " [Link], [Link], [Link], [Link], [Link] " +
"FROM usuarios " +
"LEFT JOIN administradores ON [Link]=[Link] " +
"WHERE (nombre LIKE ?) OR (apellido LIKE ?) OR (email LIKE ?) " +
"ORDER BY [Link]);");
[Link](1, "%"+patron+"%");
[Link](2, "%"+patron+"%");
[Link](3, "%"+patron+"%");
rs = [Link]();
// Leo uno a uno los registros traidos del la DB y los cargo en la lista
while ([Link]()) {
usr = new usuario();
[Link]([Link]("id"));
[Link]([Link]("nombre"));
[Link]([Link]("apellido"));
[Link]([Link]("email"));
[Link]([Link]("contrasena"));
[Link]([Link]("fecnac"));
[Link]([Link]("pais"));
[Link]([Link]("activo"));
[Link]([Link]("esadmin"));
[Link](usr);
}
desconectar(con); //Desconecto de la DB
} catch (SQLException e) {
[Link](e);
}
//Crea el json
String usrJSON;
try {
usrJSON = [Link](lista);
//[Link](usrJSON);
return usrJSON;
} catch (Exception ex) {
3
[Link]([Link]()).log([Link], 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 = [Link]("INSERT INTO usuarios (Nombre, Apellido, Email, Contrasena, FecNac, Pais,
activo) VALUES(?,?,?,?,?,?,?) ",
Statement.RETURN_GENERATED_KEYS);
[Link](1, nombre);
[Link](2, apellido);
[Link](3, email);
[Link](4, contrasena);
[Link](5, fecnac);
[Link](6, pais);
[Link](7, activo);
int res = [Link]();
if (res > 0) {
// Se obtiene el ID del usuario registrado
ResultSet generatedKeys = [Link]();
int usrid=-1;
if ([Link]()) {
usrid = [Link](1);
}
if (admin) {
PreparedStatement ps3 = [Link]("INSERT INTO administradores (usrid, esadmin) VALUES (?,?)");
[Link](1, usrid);
[Link](2, admin); // admin es el valor booleano
[Link]();
}
}
4
desconectar(con);
} catch (SQLException e) {
[Link](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 = [Link]("SELECT * FROM administradores WHERE usrid = ?");
[Link](1, id);
rs1 = [Link]();
if ([Link]()) { // Si hay un resultado entro por aca a borrar
[Link]("3 - SQL Borra");
PreparedStatement ps2 = [Link]("delete from administradores where usrid = ?");
[Link](1, id);
[Link]();
};
//ahora borro el usuario
PreparedStatement ps = [Link]("DELETE FROM usuarios WHERE id=?");
[Link](1, id); //El segundo integral es el ID que se borrara
int res = [Link]();
desconectar(con);
} catch (NumberFormatException | SQLException e) {
[Link](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;
[Link]("Actualizo registro - " + admin);
try {
con = conectar();
PreparedStatement ps = [Link]("UPDATE usuarios SET nombre=?, apellido=?, email=?, contrasena=?,
fecnac=?, pais=?, activo=? WHERE id=?");
[Link](1, nombre);
[Link](2, apellido);
[Link](3, email);
[Link](4, contrasena);
[Link](5, fecnac);
[Link](6, pais);
[Link](7, activo);
[Link](8, id);
int res = [Link]();
compruebaAdmin(id, admin, con);
desconectar(con);
} catch (SQLException e) {
[Link](e);
}
}