Java - insert a base de datos sql server

 
Vista:
sin imagen de perfil

insert a base de datos sql server

Publicado por Marcelo (2 intervenciones) el 23/06/2014 05:28:51
Hola compañeros,

estoy realizando un sistema básico de altas, bajas y modificaciones, y el error que tengo es al momento de realizar la inserción a la base de datos, el error que me sale es el JavaLangNullPointerException.
lo que quiero hace es desde unos TextBox insertar a la base de datos, la validación de la información esta en un procedimiento almacenad para saber si hay codigos repetidos.

El código que uso es:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
private void btnInsertarActionPerformed(java.awt.event.ActionEvent evt) {
        if(this.txtInsertCI.getText().equals("")){
            JOptionPane.showMessageDialog(null, "Campo CI Obligatorio","Verificar",JOptionPane.ERROR_MESSAGE);
            this.txtInsertCI.requestFocus();
        }else if(this.txtInsertNombre.getText().equals("")){
            JOptionPane.showMessageDialog(null,"Campo Nombre Obligatorio","Verificar",JOptionPane.ERROR_MESSAGE);
            this.txtInsertNombre.requestFocus();
        }else if(this.txtInsertApellidos.getText().equals("")){
            JOptionPane.showMessageDialog(null,"Campo Apellidos obligatorio","Verificar",JOptionPane.ERROR_MESSAGE);
            this.txtInsertApellidos.requestFocus();
        }else if(this.txtInsertVehiculo.getText().equals("")){
            JOptionPane.showMessageDialog(null, "Campo Tipo Vehiculo Obligatorio","Verificar",JOptionPane.ERROR_MESSAGE);
            this.txtInsertVehiculo.requestFocus();
        }else if(this.txtInsertMarca.getText().equals("")){
            JOptionPane.showMessageDialog(null,"Campo Marca Obligatorio","Verificar",JOptionPane.ERROR_MESSAGE);
            this.txtInsertMarca.requestFocus();
        }else if(this.txtInsertPlaca.getText().equals("")){
            JOptionPane.showMessageDialog(null,"Campo Placa Obligatorio","Verificar",JOptionPane.ERROR_MESSAGE);
            this.txtInsertPlaca.requestFocus();
        }else{
            try {
                int k = JOptionPane.showConfirmDialog(null, "Desea guardar los datos del chofer?", "PREGUNTA", JOptionPane.YES_NO_OPTION);
                if (k == JOptionPane.YES_OPTION) {
                    try (
                            PreparedStatement pstm = con.getConnection().prepareStatement("{call insertarChofer (?,?,?,?,?,?,?,?,?)}")) {
                        pstm.setString(1, txtInsertCI.getText());
                        pstm.setString(2, txtInsertNombre.getText());
                        pstm.setString(3, txtInsertApellidos.getText());
                        pstm.setString(4, txtInsertVehiculo.getText());
                        pstm.setString(5, txtInsertMarca.getText());
                        pstm.setString(6, txtInsertPlaca.getText());
                        pstm.setString(7, txtInsertNIT.getText());
                        pstm.setString(8, txtInsertRazon.getText());
                        r = pstm.executeQuery();
                        String respuesta = "";
                        while (r.next()) {
                            respuesta = r.getString(1).toString();
                        }
                        JOptionPane.showMessageDialog(null, respuesta, "CONFIRMACION", JOptionPane.WARNING_MESSAGE);
                    }
                }
            } catch (SQLException e) {
                JOptionPane.showMessageDialog(null, "ERROR AL RESGISTRAR", "ERROR", JOptionPane.WARNING_MESSAGE);
            } finally {
            }
        }
    }

por favor si me pueden ayudar a detectar el problema o tal ves a mejorar el código, cualquier duda que tengan me escriben por favor.
Muchas gracias e ante mano.
Un Saludo
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 Elias

insert a base de datos sql server

Publicado por Elias (25 intervenciones) el 23/06/2014 08:33:37
Hola Marcelo!,

lo que pasa es que alguno de los campos que estas obteniendo va en null, que no es lo mismo que valla con comillas dobles o vacío, para poder evitar o validar esto, en los if que tu haces deberías agregarle que tampoco valla en null, debería ser así:

1
2
3
4
5
6
7
if ( this.txtInsertCI.getText() == null || this.txtInsertCI.getText().equals("") ) {
 
            JOptionPane.showMessageDialog(null, "Campo CI Obligatorio","Verificar",JOptionPane.ERROR_MESSAGE);
 
            this.txtInsertCI.requestFocus();
 
}

Tienes que poner la condición == null primero porque osino te seguirá tirando el error.


Espero haberte ayudado!. Cualquier cosa me consultas!

Saludos.
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
sin imagen de perfil

insert a base de datos sql server

Publicado por Marcelo (2 intervenciones) el 24/06/2014 20:28:51
Te cuento que realice los cambios que me dijiste y aun así obtengo el error:

Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

estoy buscando y re buscando cual pueda ser el error pero no doy con el.

Espero me puedan ayudar a encontrar el error y corregirlo.

Muchisimas gracias por tu respuesta y ayuda Elias.
Un Saludo
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
Imágen de perfil de Pedro Ivan

insert a base de datos sql server

Publicado por Pedro Ivan (15 intervenciones) el 09/06/2016 08:53:28
Hola Marcelo.

Bueno primeramente cuando se crea una conexiona a BD en este caso a SQL deberás de verificar que tus campos los cuales mandaste a llamar, en este caso hay varios de tus campos los cuales al insertar no se encuentran entre comillas o así mismo no deben de estar entre comillas y checar si tu cadena de conexion esta funcionando. Deberás de estar viendo que campos y como los vas a implementar a continuación te comparto un código el cual es la de ingresar un nuevo registro:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
 
public class Botones extends JFrame{
	//CREAMOS LOS BOTONES
	JButton aceptar = new JButton("Aceptar");
	JButton cancelar = new JButton("Cancelar");
 
	//CREAMOS UN PANEL PARA COLOCAR LOS BOTONES
	JPanel principal = new JPanel(new BorderLayout());
 
	public Botones(){
		super("Botones");
		principal.add("North", aceptar);
		principal.add("South", cancelar);
 
		getContentPane().add(principal);
 
		//AGREGAMOS TOOL TIPS A LOS BOTONES
		aceptar.setToolTipText("Botón ACEPTAR...");
		cancelar.setToolTipText("Botón CANCELAR...");
 
		pack();
		setResizable(false);
		Dimension pantalla, cuadro;
		pantalla = Toolkit.getDefaultToolkit().getScreenSize();
		cuadro = this.getSize();
 
		this.setLocation(((pantalla.width - cuadro.width)/2), (pantalla.height - cuadro.height)/2);
	}//FIN DEL CONSTRUCTOR DE LA CLASE
 
	public static void main(String g[]){
		Botones p = new Botones();
		p.show();
 
		p.addWindowListener(new WindowAdapter(){
			public void windowClosing(WindowEvent evt){
				System.exit(0);
			}
		});
	}//FIN DEL MAIN
}//FIN DE LA CLASE


Espero y te aya servdo.
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