estoy haciendo un ejercicio tonto que seria una especie de programa para controlar altar y bajas de una academia (alumnos y cursos)
Existen X cursos ya creados y se pueden seleccionar en un combobox y segun lo que selecciones, muestra en un jList los alumnos que hay en ese curso, permite editar sus datos, etc...
Tengo el codigo ya acabado y el programa funciona perfecto salvo un detalle que me esta volviendo loco.
El programa tiene que poder cargar y salvar los datos tanto de un fichero (xml) como de una BD con JDBC... pero no se pueden tener las dos formas a la vez (lo que solucione con un if/else y un simple booleano)
La parte de cargar y guardar datos a un fichero xml funciona perfecto, pero me da problemas la parte de la BD, concretamente el salvar los datos (el cargarlos tambien me funciona bien)
Ahora os pondre los codigos, pero basicamente, el programa manda un arraylist de alumnos al metodo, el cual conecta con la BD y, por medio de un bucle for, va creando filas en la BD con los datos de cada alumno.
El codigo del metodo es este:
Código Java:
Ver original
public void setAlumnos(List<Alumno> lista) { /* Antes del codigo de guardado, deberiamos de comprobar si existe la BD y en caso afirmativo, vaciarla primero. if () { } */ for (Alumno alumno : lista) { com.setString(1, alumno.getDniAlumno()); com.setString(2, alumno.getNombreAlumno()); com.setString(3, alumno.getApellidoAlumno()); com.executeUpdate(); com.close(); } } }
EL fallo es que siempre entra en catch. He podido comprobar que el codigo llega correctamente hasta el com.executeUpdate(); ya que si comento esa parte y justo antes hago un System.out del alumno, me lo muestra correctamente.
Los datos de la BD, conexion y demas funciona bien ya que el metodo que carga los datos a un ArrayList si que funciona bien.
Alguien sabe que puedo estar haciendo mal?
Ademas, como veis tengo un if comentado, ya que hay quiero meter un codigo que detecte si hay alguna fila en la tabla y de ser asi, limpie la tabla entera pero aun estoy con ello xD