Bases de Datos - Encuentra el o los errores en el código. (Java y mysql)

 
Vista:
Imágen de perfil de Martín

Encuentra el o los errores en el código. (Java y mysql)

Publicado por Martín (12 intervenciones) el 05/10/2022 04:55:02
package ventanas;

import java.awt.BorderLayout;
import java.awt.Color;
import java.awt.EventQueue;
import javax.swing.JFrame;
import javax.swing.JPanel;
import javax.swing.border.EmptyBorder;
import java.awt.Toolkit;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
import javax.swing.JTextField;
import javax.swing.SwingConstants;
//Nos permite modificar la fuente de letras
import java.awt.Font;
import java.awt.event.ActionListener;
import java.awt.event.ActionEvent;
//Nos permiten conectar a las Bases de Datos
import java.sql.*;
import clases.Conector;

public class InfoUsuario extends JFrame {

String user = "", user_update = "";
int ID;

private JPanel contentPane;
private JTextField txt_username;

public static void main(String[] args) {
EventQueue.invokeLater(new Runnable() {
public void run() {
try {
InfoUsuario frame = new InfoUsuario();
frame.setVisible(true);
} catch (Exception e) {
e.printStackTrace();
}
}
});
}

//Constructor
public InfoUsuario() {

//Tomamos información de la clase GestionarUsuarios
user_update = GestionarUsuarios.user_update;

//Evitar que usuario redimencione ventana
setResizable(false);

//Icono de ventana
setIconImage(Toolkit.getDefaultToolkit().getImage(InfoUsuario.class.getResource("/images/informationuser.png")));

//Título de ventana
setTitle("Información");

//Características de la ventana (JFrame) y de su contenido (JPanel)
setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
setBounds(100, 100, 250, 210);
contentPane = new JPanel();
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
setContentPane(contentPane);
contentPane.setLayout(null);

//Etiqueta Usuario
JLabel lbl_Usuario = new JLabel("Usuario");
lbl_Usuario.setFont(new Font("Tahoma", Font.BOLD | Font.ITALIC, 14));
lbl_Usuario.setHorizontalAlignment(SwingConstants.CENTER);
lbl_Usuario.setBounds(67, 11, 100, 14);
contentPane.add(lbl_Usuario);

//Botón Actualizar
JButton btn_Actualizar = new JButton("Actualizar");
//Espacio donde nos permite configurar la funcionalidad del botón Actualizar
btn_Actualizar.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent e) {
//Declaramos variable donde guardaremos información de manera temporal
String username;
//Guardamos el contenido del campo de texto dentro de la variable
username = txt_username.getText().trim();
//Chequeamos que no existan campos vacíos
if(username.equals("")) {
//El campo se colorea en rojo si está vacío
txt_username.setBackground(Color.RED);
}
if(!username.equals("")) {
try {
//Nos conectamos a la base de datos
Connection cn = Conector.conectar();
PreparedStatement pst = cn.prepareStatement(
/*El programa debe seleccionar el nombre de usuario de la tabla usuario,
donde el nombre de usuario sea igual al nombre de usuario del cuadro de texto,
y no consulte al que tiene la ID de usuario al que estamos consultando*/
"select username from usuarios where username = '"
+ username + "' and not id_usuario = '" + ID + "'");

ResultSet rs = pst.executeQuery();

if (rs.next()) {
//Si el nombre de usuario no está disponible, el campo se colorea en rojo
txt_username.setBackground(Color.RED);
JOptionPane.showMessageDialog(null, "Nombre de usuario no disponible");
//Cerramos la conexión a la base de datos
cn.close();

} else {
//Si el nombre de usuario está disponible
//Nos conectamos a la base de datos
Connection cn2 = Conector.conectar();
PreparedStatement pst2 = cn2.prepareStatement(
/*El programa debe actualizar el nombre de usuario,
donde id_usuario sea igual al ID de usuario que estamos consultando */
"update usuarios set username=? " + "where id_usuario = '" + ID + "'");

pst2.setString(2, username);//<<<<<<<<este no me gusta mucho,no se si es el de la tabla o el de la linea usename=?<<<<<<<
pst2.executeUpdate();
//Cerramos la conexión a la base de datos
cn2.close();

JOptionPane.showMessageDialog(null, "Modificación correcta");
}
} catch (Exception e2) {
}
} else {
JOptionPane.showMessageDialog(null, "Debe llenar todos los campos");
}
}
});
btn_Actualizar.setBounds(67, 67, 100, 23);
contentPane.add(btn_Actualizar);

//Botón Restaurar Contraseña
JButton btn_Restaurar = new JButton("Restaurar Contraseña");
btn_Restaurar.setBounds(37, 101, 160, 23);
contentPane.add(btn_Restaurar);

//Botón Eliminar Usuario
JButton btn_Eliminar = new JButton("Eliminar Usuario");
btn_Eliminar.setBounds(37, 135, 160, 23);
contentPane.add(btn_Eliminar);

//Cuadro de texto Usuario
JTextField txt_username = new JTextField();
txt_username.setHorizontalAlignment(SwingConstants.CENTER);
txt_username.setBounds(37, 36, 160, 20);
contentPane.add(txt_username);
txt_username.setColumns(10);

//Llenamos la informacion desde la base de datos denro de la interface
try {
//Nos conectamos a la base de datos
Connection cn = Conector.conectar();
PreparedStatement pst = cn.prepareStatement(
"select * from usuarios where username = '" + user_update + "'");
//Verificamos que existan coincidencias en la búsqueda que estamos solicitando
ResultSet rs = pst.executeQuery();

if(rs.next()) {
//Recuperamos el ID del usuario seleccionado para posteriormente evitar redundancias
ID = rs.getInt("id_usuario");

//Colocamos los valores encontrados desde la base de datos en el cuadro de texto Usuario
txt_username.setText(rs.getString("username"));

}
cn.close();//Cerramos la conección a la base de datos

} catch (Exception e) {

}

setLocationRelativeTo(null);//Para centrar la ventana
}
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
-1
Responder