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

nulos en mysql

Estas en el tema de nulos en mysql en el foro de Java en Foros del Web. Hola, estoy haciendo una aplicacion que accede a BBDD Mysql.Cuando por ejemplo intento dar un alta de un cliente en la base de datos me ...
  #1 (permalink)  
Antiguo 09/02/2005, 01:59
 
Fecha de Ingreso: diciembre-2004
Mensajes: 46
Antigüedad: 19 años, 4 meses
Puntos: 0
nulos en mysql

Hola,
estoy haciendo una aplicacion que accede a BBDD Mysql.Cuando por ejemplo intento dar un alta de un cliente en la base de datos me gustaria que ciertos campos de la tabla no admitieran nulos,y en la tabla los declaro como not null.Lo que quiero es aprovechar las exceciones,esto lo estoy haciendo igual con claves primarias para q me salte excepcion cuando intente añadir clientes q ya existan.
El caso es que cuando doy el alta con textcomponent vacios,en la tabla en lugar intentar meter nulos,lo que inserta son '' ,es decir, una cadena vacia con lo que no me salta la excepcion.Hay alguna forma de hacer que cuando un texcomponent lo dejes vacio lo tome como un null?

Gracias.
Un saludo.
  #2 (permalink)  
Antiguo 09/02/2005, 02:19
 
Fecha de Ingreso: enero-2005
Mensajes: 139
Antigüedad: 19 años, 3 meses
Puntos: 0
Hola,

A mi lo único que se me ocurre es que con la propiedad length de la clase String detectes cuando hay una cadena vacía en el control. Después ya tienes tres caminos. Mostrar un mensaje de error en ese momento tal y como si se hubiera disparado la excepción. Crearte tú una nueva clase derivada de Exception y hacer el tratamiento que corresponda o bien inicializar la cadena en cuestión a null y después tratar de hacer la inserción en la base de datos para seguir el mecanismo normal de excepciones de MySQL.

Saludos.
  #3 (permalink)  
Antiguo 09/02/2005, 02:40
 
Fecha de Ingreso: febrero-2005
Mensajes: 396
Antigüedad: 19 años, 2 meses
Puntos: 1
Es que en tu sentencia SQL probablemente no estás metiendo los nulos, sino cadenas en blanco, que no es lo mismo.

Así pues, creo que en ese sentido es más facil detectar si lo introducido es una cadena vacia que otra cosa.

Un saludo

Zerjillo
  #4 (permalink)  
Antiguo 09/02/2005, 02:45
 
Fecha de Ingreso: diciembre-2004
Mensajes: 46
Antigüedad: 19 años, 4 meses
Puntos: 0
Gracias WebStorm.
lo de comprobar yo si es '' y lanzar el mensaje lo habia pensado, pero queria saber si se podia aprovechando las expeciones de mysql.
Claro como dices tu si se puede,compruebo que la cadena es '' y si lo es la igualo a null.Lo probaré.
Gracias por tu ayuda.
No se me habia ocurrido.
Un saludo.
  #5 (permalink)  
Antiguo 09/02/2005, 02:46
 
Fecha de Ingreso: diciembre-2004
Mensajes: 46
Antigüedad: 19 años, 4 meses
Puntos: 0
Como me aconsejais que lo haga,aprovechando las excepciones o lanzando yo los mensajes si son cadenas vacias?cual seria me jor metodologia de programacion?
  #6 (permalink)  
Antiguo 09/02/2005, 02:53
 
Fecha de Ingreso: enero-2005
Mensajes: 139
Antigüedad: 19 años, 3 meses
Puntos: 0
Pues eso es cuestión de gustos y cada uno tendrá su opinión del tema....

A mi, por limpieza de código y claridad a la hora de entenderlo me gusta más usar el propio mecanismo de excepción de mysql poniendo las cadenas a null cuando estén vacías.

Al fin y al cabo, yo pienso que las excepciones están para algo y me gusta manejar todos los errores siempre con excepciones. Me da la impresión de que así el código está mucho mas ordenado.

Saludos.
  #7 (permalink)  
Antiguo 09/02/2005, 04:11
 
Fecha de Ingreso: febrero-2005
Mensajes: 396
Antigüedad: 19 años, 2 meses
Puntos: 1
Pues ambas consideraciones son interesantes. Yo de ti comprobaba a nivel de aplicación que el usuario no introduzca '', y eso no quitaria que compruebes las excepciones de NULL que puedan ocurrirte. Asi te curas en salud.

Por otro lado, comprobar si hay '', para poner un NULL, que luego sabes que va a saltar la excepcion puede ser un poco lioso (además de que estás haciendo transacciones innecesarias con la Base de Datos).

Pero obviamente, es cuestión de gustos.

Un saludo

Zerjillo
  #8 (permalink)  
Antiguo 09/02/2005, 07:30
 
Fecha de Ingreso: diciembre-2004
Mensajes: 46
Antigüedad: 19 años, 4 meses
Puntos: 0
Sabeis donde puedo encontar los códigos de error de mysql, me gustaria poder diferenciar los diferentes tipos de excepciones q me pueden saltar.

he encontrado este tabla

http://dev.mysql.com/doc/mysql/en/my...ror-codes.html

¿estos son los códigos que devolveria la funcion getErrorCode de SQLException?
  #9 (permalink)  
Antiguo 09/02/2005, 18:18
 
Fecha de Ingreso: enero-2005
Mensajes: 139
Antigüedad: 19 años, 3 meses
Puntos: 0
Pues no tengo muy claro que esos códigos te valgan ya que lo que tu vas a usar es el driver jdbc y esos corresponden al odbc. Imagino que a lo mejor algún código de error coincide, pero no creo que sea muy fiable...

Saludos.
  #10 (permalink)  
Antiguo 10/02/2005, 01:07
 
Fecha de Ingreso: diciembre-2004
Mensajes: 46
Antigüedad: 19 años, 4 meses
Puntos: 0
Bueno pues si no los encuentro los descubriré probando.
Gracias por vuestra ayuda.
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 21:51.