Foros del Web » Programación para mayores de 30 ;) » Java »

Guardar Registros en una BD

Estas en el tema de Guardar Registros en una BD en el foro de Java en Foros del Web. Hola queridos amigos amantes de JAVA quiero comentarles que tengo una aplicacion en la que nesesito guardar unos datos pero lo que pasa es que ...
  #1 (permalink)  
Antiguo 18/01/2011, 09:56
 
Fecha de Ingreso: enero-2011
Ubicación: Bogota, Colombia
Mensajes: 81
Antigüedad: 13 años, 10 meses
Puntos: 0
Pregunta Guardar Registros en una BD

Hola queridos amigos amantes de JAVA quiero comentarles que tengo una aplicacion en la que nesesito guardar unos datos pero lo que pasa es que en la tabla que esta en la BD tengo un campo autoincremental y por lo tanto no lo declaro ni lo encapsulo para poder guardar un regisro pero me aparece un error de que nesesitta un campo para el campo aqui les dejo un poco de codigo y el error

[
Código:
public void guardar() throws Exception{

        try {
           
            //generar la sentencia SQL tipo insert
            String sql="INSERT INTO cortador(referencia_cortador,cantidaP_cortador,color_cortador"
                    + "nombre_cortador,material_cortador,numeracion_cortador,total_cortador,comentario_cortador"
                    + "cod_trabajador_cortador)"
                    +" VALUES(?,?,?,?,?,?,?,?,?)";
            //CREAR UN OBJETO PARA UTILIZAR LA CLASE CONEXION BAS DE DATOS
            ConexioBaseDatos baseDatos=new ConexioBaseDatos();
            //establece una conexion entre el driver y el programa y el driver y el SMBD
            baseDatos.conectar();
            //crea un objeto para trabajar con las sql
            PreparedStatement sentencia= baseDatos.crearSentencia(sql);
            sentencia.setString(1, this.referencia);
            sentencia.setString(2, this.numeroP);
            sentencia.setString(3, this.color);
            sentencia.setString(4, this.nombre);
            sentencia.setString(5, this.material);
            sentencia.setString(6, this.numeracion);
            sentencia.setString(7, this.total);
            sentencia.setString(8, this.comentario);
            sentencia.setString(9, this.cod_trabajador_cortador);
            baseDatos.actualizar(sentencia);
                                 
        } catch (Exception erro) {
            throw new Exception("Ocurrio un error al guardar Tarea de la persona "+this.cod_trabajador_cortador+" "+this.nombre+
                    " "+this.referencia+"\n"+erro.getMessage());
        }

    }
Hamm estoy trabajado con MVC y aqui les dejo el resto de codigo que esta en el formulario mas exactamente en el boton

Código:
private void btnGuardarActionPerformed(java.awt.event.ActionEvent evt) {                                           
        // TODO add your handling code here:
         int respuesta;
        respuesta=JOptionPane.showConfirmDialog(null, "Confirma Guardar el Registro","Guardar",JOptionPane.YES_NO_OPTION);
        //recupero los datos del formulari
        ClaseCortador nuevoContacto=new ClaseCortador();
        nuevoContacto.setCod_trabajador_cortador(txtCodigo.getText());
        String nombre =(String) cmbNombre.getSelectedItem();
        nuevoContacto.setNombre(nombre);

        nuevoContacto.setReferencia(txtReferencia.getText());
        nuevoContacto.setMaterial(txtMaterial.getText());
       nuevoContacto.setNumeroP(txtCantidadPares.getText());
       nuevoContacto.setNumeracion(txtNumeracion.getText());
       nuevoContacto.setColor(txtColor.getText());
        nuevoContacto.setTotal(txtTotal.getText());
        nuevoContacto.setComentario(txtArea.getText());
        //una ves la persona tenga los datos de sus variables se procede a guaradar
        //en la base de datos
        try {
             if(respuesta==JOptionPane.YES_OPTION)
        {
                
            nuevoContacto.guardar();

            JOptionPane.showMessageDialog(this, "Registro Guardado satisfactoriamente","Operacion Exitosa"
                    ,JOptionPane.INFORMATION_MESSAGE);

        }
 else
             {
             JOptionPane.showMessageDialog(null, "Borrado cancelado por el usuario");
             txtCodigo.setText("");
             txtReferencia.setText("");
             txtMaterial.setText("");
             txtCantidadPares.setText("");
             txtNumeracion.setText("");
             txtArea.setText("");
             txtTotal.setText("");
           

 }
        } catch (Exception e) {
            JOptionPane.showMessageDialog(this, e.getMessage(),"Error inesperado",JOptionPane.ERROR_MESSAGE);
        }


    }
e antemano gracias por la atencion prestada y por la pronta respuesta
  #2 (permalink)  
Antiguo 18/01/2011, 10:04
Avatar de jhonmelguizo  
Fecha de Ingreso: enero-2008
Ubicación: Medellín - Colombia
Mensajes: 264
Antigüedad: 16 años, 10 meses
Puntos: 6
Pregunta Respuesta: Guardar Registros en una BD

Verifica primero la sentencia sql construida, si puedes házlo directamente en el motor, un insert de prueba obviando el campo autoincremental.

Si ha sido exitoso el query, entonces pasas a verificar el código escrito.

Cuándo te sale el error, te está especificando cuál es el nombre del campo? y que este sea el que autoincrementa?.
  #3 (permalink)  
Antiguo 18/01/2011, 13:56
Avatar de jcMouse  
Fecha de Ingreso: noviembre-2009
Ubicación: Bolivia
Mensajes: 116
Antigüedad: 15 años
Puntos: 9
Respuesta: Guardar Registros en una BD

String sql="INSERT INTO cortador(referencia_cortador,cantidaP_cortador,col or_cortador"
+ "nombre_cortador,material_cortador,numeracion_cort ador,total_cortador,comentario_cortador"
+ "cod_trabajador_cortador)"
+" VALUES(?,?,?,?,?,?,?,?,?)";

creo que te faltan comas :) ¿cual es el error que te sale desde el IDE? copy/paste
__________________
Problem?
Estoy aquí
Foro Code Army
  #4 (permalink)  
Antiguo 21/01/2011, 15:05
Avatar de valdo_kof  
Fecha de Ingreso: noviembre-2009
Ubicación: San Juan del Rio, Qro
Mensajes: 192
Antigüedad: 15 años
Puntos: 16
Respuesta: Guardar Registros en una BD

tiene razon jc Mouse le hacen falta , y le sobra un ? al VALUE de:
Código HTML:
Ver original
  1. String sql="INSERT INTO cortador(referencia_cortador,cantidaP_cortador,color_cortador"
  2.                     + "nombre_cortador,material_cortador,numeracion_cortador,total_cortador,comentario_cortador"
  3.                     + "cod_trabajador_cortador)"
  4.                     +" VALUES(?,?,?,?,?,?,?,?,?)";

deberia de ser asi:

Código HTML:
Ver original
  1. String sql="INSERT INTO cortador(referencia_cortador,cantidaP_cortador,color_cortador,"
  2.                     + "nombre_cortador,material_cortador,numeracion_cortador,total_cortador,comentario_cortador,"
  3.                     + "cod_trabajador_cortador)"
  4.                     +" VALUES(?,?,?,?,?,?,?,?)";

por lo que conte son 8 entidades o campos en tu tabla +1 de tu autoinclemental dan los 9 ? que tenias por lo que al autoincremental le hace falta poner el ? en el value solo a los q se deben de llenar q no son autoincrementales.

espero y te sirvan los comentarios

suerte saludos

Etiquetas: guardar, insert, mysql
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 15:35.