Java - ERROR AL GUARDAR DATOS

 
Vista:
Imágen de perfil de Alejandra
Val: 31
Ha aumentado 1 puesto en Java (en relación al último mes)
Gráfica de Java

ERROR AL GUARDAR DATOS

Publicado por Alejandra (17 intervenciones) el 22/02/2020 01:04:27
Buenas noches:

Estoy haciendo un programa en Java - utilizando el IDE Netbeans - que es para una parrilla (algo parecido a un restaurante) el problema se presenta al querer guardar en un formulario las ventas, obtengo el nombre del cliente de otro formulario a través de un botón y me sale el siguiente error - adjunto imagen - y código que realicé...

Captura-de-pantalla-363

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
public DefaultTableModel buscarReservaR(int id){
    try {
        DefaultTableModel miModelo;
        String titulos[]={"Id","Nombre","Fecha","Hora","Telefono"};
        String datos[]= new String[5];
        miModelo=new DefaultTableModel(null, titulos);
        String sql = "select * from Reservaciones where idReserva = '"+id+"'";
        PreparedStatement pst = (PreparedStatement) cn.prepareStatement(sql);
        ResultSet rst=pst.executeQuery();
 
        while (rst.next()){
            datos[0]=rst.getString("idReserva");
            datos[1]=rst.getString("Nombre");
            datos[2]=rst.getString("fecha");
            datos[3]=rst.getString("hora");
            datos[4]=rst.getString("Telefono");
            miModelo.addRow(datos);
        }
        return miModelo;
    } catch(Exception ex){
        JOptionPane.showMessageDialog(null, ex);
        return null;
    }
}

Parte de la BD

1
2
3
4
5
6
7
8
9
CREATE TABLE IF NOT EXISTS Ventas(
  idVtas INT(11) NOT NULL primary key AUTO_INCREMENT,
  idRese INT(11) NOT NULL,
  Nombre VARCHAR(30) NOT NULL,
  fecha DATE NULL DEFAULT NULL,
  hora VARCHAR(20) NOT NULL,
  CONSTRAINT id_Re
  FOREIGN KEY (idRese) REFERENCES Reservaciones(IdReserva)
  );

Espero su ayuda!!!
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Lawliet
Val: 308
Ha mantenido su posición en Java (en relación al último mes)
Gráfica de Java

ERROR AL GUARDAR DATOS

Publicado por Lawliet (303 intervenciones) el 22/02/2020 22:28:39
Hola!!!

Cómo dice el error... La columna no contiene un valor por defecto; es decir, cuando tu pones una columna de la siguiente manera.

1
Nombre VARCHAR(30) NOT NULL,

Significa que no permite valores nulos por lo que siempre va a esperar un valor, al no pasar un valor en tu INSERT lo que hace es buscar el valor por defecto de dicha y al no encontrarlo te manda dicho error.

1.- La primera solución es que hagas un ALTER a tu campo para que permita valores NULOS y así te permita guardar sin importar si viene o no el nombre.

1
ALTER TABLE Ventas MODIFY Nombre VARCHAR(30);

Por defecto, las columnas en MySQL siempre son nulas así que con eso sería suficiente.

2.- La segunda solución sería revisar a nivel de código la razón del porque cuando quieres hacer un INSERT pareciera que no estás mandado ningún valor en tu consulta y he ahí la razón del error, en resumen, asegúrate que de verdad estás mandando el valor de Nombre en tu consulta.

3.- La tercera solución que en lo personal se me hace mejor y más optima, es trabajar con llaves foráneas. Por lo que entiendo, Nombre pertence seguramente a un cliente por lo cual yo haría una relación entre una tabla Ventas y una tabla Clientes y así solamente pasar el ID del cliente a realizar dicha venta. O bien, si el nombre pertenece al Vendedor de igual forma haría la relación entre una tabla Vendedor y una tabla Ventas, donde solamente pase el ID del vendedor quien realiza dicha venta. (Opcional).

Sin más que comentar, quedo al pendiente de cualquier duda y/o comentario.

Saludos! :3
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar