commit 79c713190d169ef4843cf37af3a94a872c463694 Author: Isidoro Nevares Martín Date: Mon Apr 13 14:03:27 2026 +0200 Commit examen eedd ra3 diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..0293886 --- /dev/null +++ b/.gitignore @@ -0,0 +1,7 @@ +/bin/ +*.class +/target/ +# Eclipse +.classpath +.project +.settings/ \ No newline at end of file diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..ec0b103 --- /dev/null +++ b/pom.xml @@ -0,0 +1,7 @@ + + 4.0.0 + org.lapaloma.concesionario + aadd_concesionario + 0.0.1-SNAPSHOT + + \ No newline at end of file diff --git a/src/main/java/eedd/ra3/hogwarts/AppHogwarts.java b/src/main/java/eedd/ra3/hogwarts/AppHogwarts.java new file mode 100644 index 0000000..d13d317 --- /dev/null +++ b/src/main/java/eedd/ra3/hogwarts/AppHogwarts.java @@ -0,0 +1,149 @@ +package eedd.ra3.hogwarts; + +import java.util.List; + +import eedd.ra3.hogwarts.dao.ICasaDAO; +import eedd.ra3.hogwarts.dao.impl.CasaDaoArray; +import eedd.ra3.hogwarts.vo.Casa; + +/** + * + * AppConcesionario: Clase que realiza el tratamiento de los Casas de un + * concesionario. + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 4 dic 2025 + * + * + */ + +public class AppHogwarts { + + private ICasaDAO iCasaDAO; + + public static void main(String[] args) { + AppHogwarts app = new AppHogwarts(); + + // Consulta inicial de Casas + app.consultarCasas("INICIAL"); + + // Consulta por ID + app.consultarPorId(3); + + // Alta de un nuevo Casa + app.altaCasa(); + + // Actualización de un Casa existente + app.actualizarCasa(); + + // Borrado de un Casa por ID + app.borrarCasa(2); + + // Consulta de Casas por "nombre" + app.consultarCasasNombre("Ravenclaw"); + + // Consulta final de Casas + app.consultarCasas("FINAL"); + } + + public AppHogwarts() { + iCasaDAO = new CasaDaoArray(); + } + + private void consultarCasas(String momento) { + try { + List listaCasas = iCasaDAO.obtenerListaCasas(); + + System.out.println("#########################################"); + System.out.println("LISTADO DE CASAS " + momento); + System.out.println("#########################################"); + + for (Casa Casa : listaCasas) { + System.out.println(Casa); + } + System.out.println("-------------------------------------------------\n\n"); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + private void consultarPorId(int id) { + System.out.println("#########################################"); + System.out.println("CONSULTA CASA POR ID: " + id); + System.out.println("#########################################\n"); + + Casa Casa = iCasaDAO.obtenerCasaPorID(id); + + if (Casa != null) { + System.out.println(Casa); + } else { + System.out.println("No existe Casa con id " + id); + } + System.out.println("-------------------------------------------------\n\n"); + } + + private void altaCasa() { + System.out.println("#########################################"); + System.out.println("ALTA DE CASA"); + System.out.println("#########################################\n"); + + Casa CasaNuevo = new Casa(); + CasaNuevo.setIdentificador(8); + CasaNuevo.setNombre("Aula magna"); + + iCasaDAO.crearCasa(CasaNuevo); + + System.out.println("Casa creada: " + CasaNuevo); + System.out.println("-------------------------------------------------\n\n"); + } + + private void actualizarCasa() { + System.out.println("ACTUALIZAR CASA"); + System.out.println("#########################################\n"); + + Casa Casa = new Casa(1, "Gryffindorrrr"); + Casa CasaActualizado = iCasaDAO.actualizarCasa(Casa); + + if (CasaActualizado != null) { + System.out.println("Casa actualizado: " + CasaActualizado); + } else { + System.out.println("No se encontró el Casa para actualizar"); + } + System.out.println("-------------------------------------------------\n\n"); + } + + private void borrarCasa(int id) { + System.out.println("#########################################"); + System.out.println("BORRAR CASA ID: " + id); + System.out.println("#########################################\n"); + + Casa Casa = iCasaDAO.obtenerCasaPorID(id); + + if (Casa != null) { + iCasaDAO.borrarCasa(Casa); + System.out.println("Casa borrado correctamente"); + } else { + System.out.println("No existe Casa con id " + id); + } + System.out.println("-------------------------------------------------\n\n"); + } + + /** + * @param string + */ + private void consultarCasasNombre(String nombre) { + System.out.println("#########################################"); + System.out.println("CONSULTA CASA POR Nombre: " + nombre); + System.out.println("#########################################\n"); + + List listaCasas = iCasaDAO.obtenerCasaPorNombre(nombre); + + for (Casa casa : listaCasas) { + System.out.println(casa); + } + + System.out.println("-------------------------------------------------\n\n"); + } + +} diff --git a/src/main/java/eedd/ra3/hogwarts/dao/ICasaDAO.java b/src/main/java/eedd/ra3/hogwarts/dao/ICasaDAO.java new file mode 100644 index 0000000..4859f91 --- /dev/null +++ b/src/main/java/eedd/ra3/hogwarts/dao/ICasaDAO.java @@ -0,0 +1,14 @@ +package eedd.ra3.hogwarts.dao; + +import java.util.List; + +import eedd.ra3.hogwarts.vo.Casa; + +public interface ICasaDAO { + public Casa obtenerCasaPorID(int identificador) ; + public Casa actualizarCasa(Casa casa) ; + public Casa crearCasa(Casa casa); + public void borrarCasa(Casa casa); + public List obtenerListaCasas(); + public List obtenerCasaPorNombre(String nombre); +} diff --git a/src/main/java/eedd/ra3/hogwarts/dao/impl/CasaDaoArray.java b/src/main/java/eedd/ra3/hogwarts/dao/impl/CasaDaoArray.java new file mode 100644 index 0000000..5f4f49e --- /dev/null +++ b/src/main/java/eedd/ra3/hogwarts/dao/impl/CasaDaoArray.java @@ -0,0 +1,81 @@ +package eedd.ra3.hogwarts.dao.impl; + +import java.util.ArrayList; +import java.util.List; + +import eedd.ra3.hogwarts.dao.ICasaDAO; +import eedd.ra3.hogwarts.vo.Casa; + +public class CasaDaoArray implements ICasaDAO { + + private List listaCasas; + + public CasaDaoArray() { + listaCasas = new ArrayList<>(); + + // Simulamos los inserts de la base de datos + listaCasas.add(new Casa(1, "Gryffindor")); + listaCasas.add(new Casa(2, "Slytherin")); + listaCasas.add(new Casa(3, "Ravenclaw")); + listaCasas.add(new Casa(4, "Hufflepuff")); + } + + @Override + public Casa obtenerCasaPorID(int identificador) { + Casa Casa = null; + for (Casa CasaLista : listaCasas) { + if (CasaLista.getIdentificador() == identificador) { + Casa = CasaLista; + break; + } + } + return Casa; + } + + @Override + public Casa actualizarCasa(Casa Casa) { + Casa CasaActualizado = null; + + for (int i = 0; i < listaCasas.size(); i++) { + Casa CasaLista = listaCasas.get(i); + if (CasaLista.getIdentificador() == Casa.getIdentificador()) { + listaCasas.set(i, Casa); + CasaActualizado = Casa; + break; + } + } + return CasaActualizado; // no encontrado + } + + @Override + public Casa crearCasa(Casa Casa) { + listaCasas.add(Casa); + return Casa; + } + + @Override + public void borrarCasa(Casa Casa) { + listaCasas.removeIf(c -> c.getIdentificador() == Casa.getIdentificador()); + } + + @Override + public List obtenerListaCasas() { + return new ArrayList<>(listaCasas); // devolvemos copia + } + + @Override + public List obtenerCasaPorNombre(String nombre) { + List listaCasasMarca= null; + + for (Casa Casa : listaCasas) { + if (Casa.getNombre().equals(nombre)) { + if (listaCasasMarca == null) { + listaCasasMarca = new ArrayList<>(); + } + listaCasasMarca.add(Casa); + } + } + + return listaCasasMarca; + } +} diff --git a/src/main/java/eedd/ra3/hogwarts/vo/Casa.java b/src/main/java/eedd/ra3/hogwarts/vo/Casa.java new file mode 100644 index 0000000..fbec022 --- /dev/null +++ b/src/main/java/eedd/ra3/hogwarts/vo/Casa.java @@ -0,0 +1,50 @@ +package eedd.ra3.hogwarts.vo; + +/** + * + * Casa: Clase de persistencia que representa una Casa de Hogwarts. + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 03 marzo 2026 + * + * + */ +public class Casa { + private int identificador; + private String nombre; + + /** + * @param identificador + * @param nombre + */ + public Casa(int identificador, String nombre) { + super(); + this.identificador = identificador; + this.nombre = nombre; + } + + public Casa() { + } + + public int getIdentificador() { + return identificador; + } + + public void setIdentificador(int identificador) { + this.identificador = identificador; + } + + public String getNombre() { + return nombre; + } + + public void setNombre(String nombre) { + this.nombre = nombre; + } + + @Override + public String toString() { + return "Casa [identificador=" + identificador + ", nombre=" + nombre + "]"; + } + +} diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..7d2cf4c --- /dev/null +++ b/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,67 @@ + + + + + + com.objectdb.jpa.Provider + + + org.lapaloma.concesionario.vo.Coche + + + + + + + + + + + + org.hibernate.jpa.HibernatePersistenceProvider + + + org.lapaloma.concesionario.vo.Coche + + + + + + + + + + + + + + + + + + org.hibernate.jpa.HibernatePersistenceProvider + + + org.lapaloma.concesionario.vo.Coche + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..ded6dcc --- /dev/null +++ b/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,24 @@ + + + + + jdbc:mysql://192.168.1.36:3306/Concesionario + com.mysql.cj.jdbc.Driver + + org.hibernate.dialect.MySQLDialect + + root + mysql_123 + + + none + false + true + + + + + + \ No newline at end of file