Commit examen eedd ra3

This commit is contained in:
Isidoro Nevares Martín 2026-04-13 14:03:27 +02:00
commit 79c713190d
8 changed files with 399 additions and 0 deletions

7
.gitignore vendored Normal file
View File

@ -0,0 +1,7 @@
/bin/
*.class
/target/
# Eclipse
.classpath
.project
.settings/

7
pom.xml Normal file
View File

@ -0,0 +1,7 @@
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>org.lapaloma.concesionario</groupId>
<artifactId>aadd_concesionario</artifactId>
<version>0.0.1-SNAPSHOT</version>
</project>

View File

@ -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<Casa> 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<Casa> listaCasas = iCasaDAO.obtenerCasaPorNombre(nombre);
for (Casa casa : listaCasas) {
System.out.println(casa);
}
System.out.println("-------------------------------------------------\n\n");
}
}

View File

@ -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<Casa> obtenerListaCasas();
public List<Casa> obtenerCasaPorNombre(String nombre);
}

View File

@ -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<Casa> 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<Casa> obtenerListaCasas() {
return new ArrayList<>(listaCasas); // devolvemos copia
}
@Override
public List<Casa> obtenerCasaPorNombre(String nombre) {
List<Casa> listaCasasMarca= null;
for (Casa Casa : listaCasas) {
if (Casa.getNombre().equals(nombre)) {
if (listaCasasMarca == null) {
listaCasasMarca = new ArrayList<>();
}
listaCasasMarca.add(Casa);
}
}
return listaCasasMarca;
}
}

View File

@ -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 + "]";
}
}

View File

@ -0,0 +1,67 @@
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://xmlns.jcp.org/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="
http://xmlns.jcp.org/xml/ns/persistence
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"
version="2.1">
<persistence-unit name="UP_CONCESIONARIO_ODB" transaction-type="RESOURCE_LOCAL">
<!-- Proveedor de persistencia JPA -->
<provider>com.objectdb.jpa.Provider</provider>
<!-- Clases a "mapear" -->
<class>org.lapaloma.concesionario.vo.Coche</class>
<!-- Configuración de propiedades del SGDB (ObjectDB)-->
<properties>
<property name="jakarta.persistence.jdbc.url" value="objectdb://localhost/Cocensionario.odb" />
<property name="jakarta.persistence.jdbc.user" value="admin"/>
<property name="jakarta.persistence.jdbc.password" value="admin"/>
</properties>
</persistence-unit>
<persistence-unit name="UP_CONCESIONARIO_MYSQL" transaction-type="RESOURCE_LOCAL">
<!-- Proveedor de persistencia JPA -->
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<!-- Clases a "mapear" -->
<class>org.lapaloma.concesionario.vo.Coche</class>
<!-- Configuración de propiedades del SGDB (MySQL) -->
<properties>
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://192.168.1.36:3306/Concesionario"/>
<property name="jakarta.persistence.jdbc.user" value="root"/>
<property name="jakarta.persistence.jdbc.password" value="mysql_123"/>
<property name="jakarta.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
<!-- Configuración Hibernate -->
<property name="hibernate.hbm2ddl.auto" value="none"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
<persistence-unit name="UP_CONCESIONARIO_POSTGRESQL" transaction-type="RESOURCE_LOCAL">
<!-- Proveedor de persistencia JPA -->
<provider>org.hibernate.jpa.HibernatePersistenceProvider</provider>
<!-- Clases a "mapear" -->
<class>org.lapaloma.concesionario.vo.Coche</class>
<!-- Configuración de propiedades del SGDB (PostgreSQL) -->
<properties>
<property name="jakarta.persistence.jdbc.url" value="jdbc:postgresql://192.168.1.36:5432/Concesionario"/>
<property name="jakarta.persistence.jdbc.user" value="vdlp"/>
<property name="jakarta.persistence.jdbc.password" value="postgresql_123"/>
<property name="jakarta.persistence.jdbc.driver" value="org.postgresql.Driver"/>
<!-- Configuración Hibernate -->
<property name="hibernate.hbm2ddl.auto" value="none"/>
<property name="hibernate.show_sql" value="true"/>
</properties>
</persistence-unit>
</persistence>

View File

@ -0,0 +1,24 @@
<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE hibernate-configuration PUBLIC
"-//Hibernate/Hibernate Configuration DTD//EN"
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
<hibernate-configuration>
<session-factory>
<property name="connection.url">jdbc:mysql://192.168.1.36:3306/Concesionario</property>
<property name="connection.driver_class">com.mysql.cj.jdbc.Driver</property>
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
<property name="connection.username">root</property>
<property name="connection.password">mysql_123</property>
<!-- DB schema will be updated if needed -->
<property name="hbm2ddl.auto">none</property>
<property name="show_sql">false</property>
<property name="format_sql">true</property>
<mapping class="org.lapaloma.concesionario.vo.Coche"></mapping>
</session-factory>
</hibernate-configuration>