Java - Conexion BD MySQL

   
Vista:
Imágen de perfil de Jose Ramon

Conexion BD MySQL

Publicado por Jose Ramon (3 intervenciones) el 01/04/2015 10:29:30
Hola, es la primera vez que utilizo un foro para consultar por lo que si cometo algún defecto de forma o sitio me disculpéis y me indiquéis como hacerlo.

Estoy creando un programita en java POO,
He creado el método de conexión con la BD MySQL
He creado la BD junto con su tabla.
Y por ultimo he creado el formulario que graba los datos introducidos en este a la BD.
El problema es que:
si ingreso en el formulario los campos numéricos, fecha y texto, entonces los guarda en la base de datos.
Pero si no ingreso los campos numéricos o de fecha se me produce el siguiente error:

menuprincipal.FormAplicacion jBGrabar1ActionPerformed
GRAVE: null
java.sql.SQLException: Incorrect integer value: '' for column 'codigoArti' at row 1

etc.....

siendo codigoArti el primer registro numérico a rellenar, si este campo lo relleno y no el de fecha este error se produciría con fechaArti.
Aclaro que java esta haciendo referencia a los campos creados en la tabla, por si sirve de ayuda.

La pregunta es: ¿Es obligatorio rellenar los campos numéricos?.
He configurado la BD como nulo para todos los campos, pero aun así se sigue produciendo este error.

Gracias anticipadas
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 Alberto

Conexion BD MySQL

Publicado por Alberto (236 intervenciones) el 01/04/2015 18:27:45
Hola...

Depende tu formulario; es decir, si esos datos son obligatorios de acuerdo tu análisis de requerimientos entonces deberías validar que estos campos se han llenados o bien, en caso de no realizar una validación podrías poner un valor por defecto, por ejemplo NULL, y en tu Query tendrías que validar si hay datos, si el usuario escribio datos entonces que aplique el INSERT correspondiente junto con todos los valores, en caso contrario que realize un INSERT con los valores que ah llenado y en los faltantes coloques un NULL. Te pongo un ejemplo...

SI existen datos...

1
INSERT INTO tabla(campo1,campo2,campo3) VALUES ('dato1','dato2','dato3');

NO existen datos...

1
INSERT INTO tabla(campo1,campo2,campo3) VALUES ('dato1',NULL,'dato3');

Aunque también existe la opción en que en vez de hacer una validación para la Query, has una validación para los campos; es decir, primero verifica si tienen valor alguno, caso afirmativo los dejarías tal y como esta, en caso contrario tendrías llenarlo con un valor como había dicho anteriormente y en la consulta es cuestión de pasar únicamente la variable que almacena el valor ya sea con el valor escrito por el usuario o bien, por el valor que tu le hayas puesto si viene vacio. Ejemplo....

1
2
3
4
5
6
7
8
if (valor1.equals("")){
	valor1 = "-----"; // O puedes poner lo que gustes como valor por defecto
}
PreparedStatement query = conn.preparedStatement("INSERT INTO tabla VALUES (?)"); // Donde el ? es el paremtro que va a recibir
query.setString(1, valor1);
query.executeUpdate();
query.close();
conn.close();

Cualquier duda y/o inconveniente aquí andamos. Suerte!
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