Buscar
Social
Ofertas laborales ES

Foro sobre Java SE > Error introducir dato auto_increment

Hola,
Al rellenar todos mis campos y pulsar el botón "Nuevo" se añaden los datos a la BD y FUNCIONA.
Pero el caso es que CodigoCliente lo tengo en la BD como auto_increment Y noNull entonces si no le introduzco nada me da error... ¿Como podria hacerlo?


Error:
[b]Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:592)
at java.lang.Integer.parseInt(Integer.java:615)
at proyecto_integrado.Clientes.jButtonNuevoActionPerformed(Clientes.java:538)
at proyecto_integrado.Clientes.access$200(Clientes.java:16)
at proyecto_integrado.Clientes$3.actionPerformed(Clientes.java:150)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2022)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2346)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:252)
at java.awt.Component.processMouseEvent(Component.java:6525)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3321)
at java.awt.Component.processEvent(Component.java:6290)
at java.awt.Container.processEvent(Container.java:2234)
at java.awt.Component.dispatchEventImpl(Component.java:4881)
at java.awt.Container.dispatchEventImpl(Container.java:2292)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4898)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4533)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4462)
at java.awt.Container.dispatchEventImpl(Container.java:2278)
at java.awt.Window.dispatchEventImpl(Window.java:2739)
at java.awt.Component.dispatchEvent(Component.java:4703)
at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:746)
at java.awt.EventQueue.access$400(EventQueue.java:97)
at java.awt.EventQueue$3.run(EventQueue.java:697)
at java.awt.EventQueue$3.run(EventQueue.java:691)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:86)
at java.awt.EventQueue$4.run(EventQueue.java:719)
at java.awt.EventQueue$4.run(EventQueue.java:717)
at java.security.AccessController.doPrivileged(Native Method)
at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:75)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:716)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)[/b]

[code]
private void jButtonNuevoActionPerformed(java.awt.event.ActionEvent evt) {
String CodCli = jTextFieldCodigoCliente.getText();
int CodigoCliente = Integer.parseInt(CodCli);
String Dni = jTextFieldDNI.getText();
String Nombre = jTextFieldNombre.getText();
String Direccion = jTextFieldDireccion.getText();
String Tlf = jTextFieldTelefono.getText();
int Telefono = Integer.parseInt(Tlf);
String FAX = jTextFieldFax.getText();
int Fax = Integer.parseInt(FAX);
String Pais = jTextFieldPais.getText();
String Provincia = jTextFieldProvincia.getText();
String Ciudad = jTextFieldCiudad.getText();
String OtrosDatos = jTextAreaOtrosDatos.getText();

//Para guardar los datos introducidos en los campos a la base de datos
try {
PreparedStatement pst = cn.prepareStatement("INSERT INTO clientes (CodigoCliente,Dni,Nombre,Direccion,Telefono,Fax,Pais,Provincia,Ciudad,OtrosDatos) VALUES(?,?,?,?,?,?,?,?,?,?)");
[b]pst.setInt(1, CodigoCliente);[/b]
pst.setString(2, Dni);
pst.setString(3, Nombre);
pst.setString(4, Direccion);
pst.setInt(5, Telefono);
pst.setInt(6, Fax);
pst.setString(7, Pais);
pst.setString(8, Provincia);
pst.setString(9, Ciudad);
pst.setString(10, OtrosDatos);
pst.executeUpdate();
} catch(Exception ex) {
Logger.getLogger(Clientes.class.getName()).log(Level.SEVERE, null, ex);
}
}
[/code]

octubre 25, 2016 | Registered Commentertesi

Hola de nuevo, jeje pues es simple, en tu codigo, en lugar de :

private void jButtonNuevoActionPerformed(java.awt.event.ActionEvent evt) {
String CodCli = jTextFieldCodigoCliente.getText();
int CodigoCliente = Integer.parseInt(CodCli);
String Dni = jTextFieldDNI.getText();
String Nombre = jTextFieldNombre.getText();
String Direccion = jTextFieldDireccion.getText();
String Tlf = jTextFieldTelefono.getText();
int Telefono = Integer.parseInt(Tlf);
String FAX = jTextFieldFax.getText();
int Fax = Integer.parseInt(FAX);
String Pais = jTextFieldPais.getText();
String Provincia = jTextFieldProvincia.getText();
String Ciudad = jTextFieldCiudad.getText();
String OtrosDatos = jTextAreaOtrosDatos.getText();

//Para guardar los datos introducidos en los campos a la base de datos
try {
PreparedStatement pst = cn.prepareStatement("INSERT INTO clientes (CodigoCliente,Dni,Nombre,Direccion,Telefono,Fax,Pais,Provincia,Ciudad,OtrosDatos) VALUES(?,?,?,?,?,?,?,?,?,?)");
[b]pst.setInt(1, CodigoCliente);[/b]
pst.setString(2, Dni);
pst.setString(3, Nombre);
pst.setString(4, Direccion);
pst.setInt(5, Telefono);
pst.setInt(6, Fax);
pst.setString(7, Pais);
pst.setString(8, Provincia);
pst.setString(9, Ciudad);
pst.setString(10, OtrosDatos);
pst.executeUpdate();

Pones esto:


private void jButtonNuevoActionPerformed(java.awt.event.ActionEvent evt) {


String Dni = jTextFieldDNI.getText();
String Nombre = jTextFieldNombre.getText();
String Direccion = jTextFieldDireccion.getText();

int Telefono = Integer.parseInt(jTextFieldTelefono.getText());

int Fax = Integer.parseInt( jTextFieldFax.getText());
String Pais = jTextFieldPais.getText();
String Provincia = jTextFieldProvincia.getText();
String Ciudad = jTextFieldCiudad.getText();
String OtrosDatos = jTextAreaOtrosDatos.getText();

//Para guardar los datos introducidos en los campos a la base de datos
try {
PreparedStatement pst = cn.prepareStatement("INSERT INTO clientes (Dni,Nombre,Direccion,Telefono,Fax,Pais,Provincia,Ciudad,OtrosDatos) VALUES(?,?,?,?,?,?,?,?,?)");

pst.setString(1, Dni);
pst.setString(2, Nombre);
pst.setString(3, Direccion);
pst.setInt(4, Telefono);
pst.setInt(5, Fax);
pst.setString(6, Pais);
pst.setString(7, Provincia);
pst.setString(8, Ciudad);
pst.setString(9, OtrosDatos);
pst.executeUpdate();

Simplemente, en la sentencia de insert que ejecutamos desde java, no incluimos el código de cliente, ya que será la bbdd la que se encargue de proporcionarlo en el momento de insertar, ya que asi lo has configurado.

Bueno, prueba eso y ya nos cuentas. Un saludo!

octubre 25, 2016 | Registered Commenterloderain

Muchas gracias por contestar tan rapido ya me funciono :) pero mira que yo había probado lo que me dijiste pero se ve que no lo hice del todo bien pero perfecto ya me funciona.

octubre 26, 2016 | Registered Commentertesi