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

campos enum en mysql y guardar valores con prepareStatement con

Estas en el tema de campos enum en mysql y guardar valores con prepareStatement con en el foro de Java en Foros del Web. Hola buenas noches gente del foro, tengo una duda, para guardar valores en un campo de tipo enum en una tabla de una bd de ...
  #1 (permalink)  
Antiguo 06/08/2011, 18:13
Avatar de sadalsuud  
Fecha de Ingreso: marzo-2010
Ubicación: en la casa del duende
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 1
Pregunta campos enum en mysql y guardar valores con prepareStatement con

Hola buenas noches gente del foro, tengo una duda, para guardar valores en un campo de tipo enum en una tabla de una bd de mysql.

Estoy usando prepareStatement para hacer las consultas, verán :

Código java:
Ver original
  1. "insert into persona values (?,?,?,?,?,?,?,?,?,NULL,NULL,NULL,NULL)";

y con otros campos como numeros o palabras hago esto y bien:

Código java:
Ver original
  1. psInsertar.setInt(1, Integer.parseInt(p.getCedula()));
  2. psInsertar.setString(8, p.getProfesion());

pero a la hora de guardar en un enum me da error esta linea

Código java:
Ver original
  1. psInsertar.setString(9, p.getSexo()+"");

y luego ejecuto la consulta:

Código java:
Ver original
  1. int state = psInsertar.executeUpdate();

en la bd sexo tiene valores ('M','H')

ya estuve mirando pero no encuentro..... :S

espero me puedan dar una orientacion
  #2 (permalink)  
Antiguo 06/08/2011, 18:28
Avatar de Ronruby  
Fecha de Ingreso: julio-2008
Ubicación: 18°30'N, 69°59'W
Mensajes: 4.879
Antigüedad: 15 años, 9 meses
Puntos: 416
Respuesta: campos enum en mysql y guardar valores con prepareStatement con

Un ENUM es tratado como un String en MySQL. Lo que tienes que verificar es que el valor del metodo getSexo() sea el adecuado, en tu caso, M o H
  #3 (permalink)  
Antiguo 06/08/2011, 18:38
Avatar de sadalsuud  
Fecha de Ingreso: marzo-2010
Ubicación: en la casa del duende
Mensajes: 96
Antigüedad: 14 años, 1 mes
Puntos: 1
Respuesta: campos enum en mysql y guardar valores con prepareStatement con

Ronruby gracias por responder, verá, el metodo getSexo() retorna un valor char por eso cuando lo quiero introducir en la consulta lo concateno para quede un string:

Código java:
Ver original
  1. psInsertar.setString(9, p.getSexo()+"");

Y si en lo que he mirado, se maneja como un String, confirmo con lo que me dice, pero no sé como implementarlo.... :S :S

gracias
  #4 (permalink)  
Antiguo 06/08/2011, 21:36
 
Fecha de Ingreso: mayo-2011
Mensajes: 44
Antigüedad: 12 años, 11 meses
Puntos: 2
Respuesta: campos enum en mysql y guardar valores con prepareStatement con

tambien podrias modificar el getsexo() para que devuelva un valor int y este se lo pasas a enum
ya que el enum maneja la indexacion entre los valores asigandos a el
por ejemplo
SEXO ENUM('H','M')
en este caso H=1 y M=2
podrias probar para ver como te va, o por lo menos hacer la prueba para ver si es exe exactamen el error =)

Etiquetas: campos, enum, 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 16:30.