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 '' | ||
| + | |||