ejercicios:unidad06
Diferencias
Muestra las diferencias entre dos versiones de la página.
— | ejercicios:unidad06 [2023/04/07 21:26] (actual) – creado - editor externo 127.0.0.1 | ||
---|---|---|---|
Línea 1: | Línea 1: | ||
+ | ====== Objetos y Validaciones ====== | ||
+ | En esta unidad vamos a realizar ejercicios relativos a las validaciones. | ||
+ | |||
+ | ===== Ejercicio01 ===== | ||
+ | Siguiendo el Ejercicio01 de la unidad anterior , pero eliminado todo el código relativo a las consultas, vamos a realizar las siguientes tareas. | ||
+ | |||
+ | ==== Validaciones ==== | ||
+ | Siempre que sea posible deberemos definir las validaciones | ||
+ | |||
+ | === NIF === | ||
+ | De la clase '' | ||
+ | * Que el NIF sea único para cada seguro. Es decir que no puede haber 2 seguros con el mismo NIF | ||
+ | * Valida que el NIF tenga un tamaño de 9 caracteres. | ||
+ | * Valida que el NIF siga la expresión regular : "'' | ||
+ | * Haz un método que valide la letra del NIF y cuyo mensaje sea "La letra del NIF no es válida" | ||
+ | * <code java> | ||
+ | String letras = " | ||
+ | int valor; | ||
+ | |||
+ | if (nif.startsWith(" | ||
+ | //Es un NIE | ||
+ | valor=Integer.parseInt(nif.substring(1, | ||
+ | }else if (nif.startsWith(" | ||
+ | //Es un NIE | ||
+ | valor=10000000+Integer.parseInt(nif.substring(1, | ||
+ | }else if (nif.startsWith(" | ||
+ | //Es un NIE | ||
+ | valor=20000000+Integer.parseInt(nif.substring(1, | ||
+ | } else { | ||
+ | //Es un NIF | ||
+ | valor=Integer.parseInt(nif.substring(0, | ||
+ | } | ||
+ | |||
+ | String letraCorrecta="" | ||
+ | |||
+ | if (nif.endsWith(letraCorrecta)==true) { | ||
+ | //El NIF es correcto | ||
+ | } else { | ||
+ | //El NIF es erroneo | ||
+ | } | ||
+ | </ | ||
+ | === Enfermedades === | ||
+ | De la clase '' | ||
+ | * No es posible que estén a '' | ||
+ | * Si está a '' | ||
+ | |||
+ | === Coberturas === | ||
+ | De la clase '' | ||
+ | * Solo se puede ser '' | ||
+ | |||
+ | === Seguro === | ||
+ | De la clase '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * Si campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | |||
+ | |||
+ | === AsistenciaMedica === | ||
+ | De la clase '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | * El campo '' | ||
+ | |||
+ | === Todas === | ||
+ | De todas las clases: | ||
+ | * Personaliza los mensajes de la anotación @NotNull para que en vez de ser "no puede ser null" sea "No puede estar vacío" | ||
+ | |||
+ | |||
+ | ==== Cambios en los métodos ==== | ||
+ | Hasta ahora todas nuestras clases han tenido únicamente métodos de '' | ||
+ | |||
+ | Ya hemos cambiado un poco nuestro modelo para hacerlo menos anémico al añadirle todas las validaciones | ||
+ | |||
+ | === Todas === | ||
+ | De todas las clases: | ||
+ | * No debería poder establecerse la clave primaria de ninguna clase. Es decir, si ya la genera Hibernate , ¿para qué hay un método '' | ||
+ | |||
+ | === NIF === | ||
+ | De la clase '' | ||
+ | * Añadir un método llamado '' | ||
+ | * Añadir un método llamado '' | ||
+ | * Añadir un método llamado '' | ||
+ | |||
+ | Vemos cómo hemos // | ||
+ | |||
+ | === Seguro === | ||
+ | La siguiente tarea a realizar es añadir un campo a la clase '' | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | === Main === | ||
+ | En la clase '' | ||
+ | <code java> | ||
+ | SimpleDateFormat sdfFecha = new SimpleDateFormat(" | ||
+ | sdfFecha.setLenient(false); | ||
+ | SimpleDateFormat sdfHora = new SimpleDateFormat(" | ||
+ | sdfHora.setLenient(false); | ||
+ | |||
+ | Seguro seguro = new Seguro(" | ||
+ | AsistenciaMedica asistenciaMedica1 = new AsistenciaMedica(seguro, | ||
+ | AsistenciaMedica asistenciaMedica2 = new AsistenciaMedica(seguro, | ||
+ | seguro.getAsistenciasMedicas().add(asistenciaMedica1); | ||
+ | seguro.getAsistenciasMedicas().add(asistenciaMedica2); | ||
+ | |||
+ | session = sessionFactory.openSession(); | ||
+ | try { | ||
+ | session.beginTransaction(); | ||
+ | session.save(seguro); | ||
+ | session.getTransaction().commit(); | ||
+ | } catch (javax.validation.ConstraintViolationException cve) { | ||
+ | session.getTransaction().rollback(); | ||
+ | System.out.println(" | ||
+ | for (ConstraintViolation constraintViolation : cve.getConstraintViolations()) { | ||
+ | System.out.println(" | ||
+ | } | ||
+ | } catch (org.hibernate.exception.ConstraintViolationException cve) { | ||
+ | session.getTransaction().rollback(); | ||
+ | System.out.println(" | ||
+ | System.out.println(" | ||
+ | } | ||
+ | </ | ||
+ | |||
+ | ===== Ejercicio02 Optativo ===== | ||
+ | Este ejercicio es optativo. | ||
+ | |||
+ | * Modifica el Ejercicio01 de esta misma unidad para hacer que al implementar el listener en la clase '' | ||
+ | |||