actualización para actuvidad 3.2

This commit is contained in:
Isidoro Nevares Martín 2026-03-03 14:58:21 +01:00
parent d50346156e
commit 9daa39294a
4 changed files with 176 additions and 113 deletions

View File

@ -23,30 +23,45 @@ public class AppConcesionario {
public static void main(String[] args) {
AppConcesionario app = new AppConcesionario();
app.inicializar();
app.consultarCoches();
// Consulta inicial de coches
app.consultarCoches("INICIAL");
// Consulta por ID
app.consultarPorId(3);
// Alta de un nuevo coche
app.altaCoche();
// Actualización de un coche existente
app.actualizarCoche();
// Borrado de un coche por ID
app.borrarCoche(2);
app.consultarCoches();
// Consulta de coches por "marca"
app.consultarCochesMarca("Seat");
// Consulta final de coches
app.consultarCoches("FINAL");
}
private void inicializar() {
public AppConcesionario() {
iCocheDAO = new CocheDaoArray();
}
private void consultarCoches() {
private void consultarCoches(String momento) {
try {
List<Coche> listaCoches = iCocheDAO.obtenerListaCoches();
System.out.println("#########################################");
System.out.println("LISTADO DE COCHES");
System.out.println("LISTADO DE COCHES " + momento);
System.out.println("#########################################");
for (Coche coche : listaCoches) {
System.out.println(coche);
}
System.out.println("-------------------------------------------------\n\n");
} catch (Exception e) {
e.printStackTrace();
@ -56,7 +71,7 @@ public class AppConcesionario {
private void consultarPorId(int id) {
System.out.println("#########################################");
System.out.println("CONSULTA POR ID: " + id);
System.out.println("#########################################");
System.out.println("#########################################\n");
Coche coche = iCocheDAO.obtenerCochePorID(id);
@ -65,37 +80,45 @@ public class AppConcesionario {
} else {
System.out.println("No existe coche con id " + id);
}
System.out.println("-------------------------------------------------\n\n");
}
private void altaCoche() {
System.out.println("#########################################");
System.out.println("ALTA DE COCHE");
System.out.println("#########################################");
System.out.println("#########################################\n");
Coche nuevo = new Coche(8, "Toyota", "Corolla", 1.8);
iCocheDAO.crearCoche(nuevo);
Coche cocheNuevo = new Coche();
cocheNuevo.setIdentificador(8);
cocheNuevo.setMarca("Wolkswagen");
cocheNuevo.setModelo("Golf");
cocheNuevo.setCilindrada(2.1);
System.out.println("Coche creado: " + nuevo);
iCocheDAO.crearCoche(cocheNuevo);
System.out.println("Coche creado: " + cocheNuevo);
System.out.println("-------------------------------------------------\n\n");
}
private void actualizarCoche() {
System.out.println("ACTUALIZAR COCHE");
System.out.println("#########################################");
System.out.println("#########################################\n");
Coche cocheActualizado = new Coche(1, "Renault", "Megane RS", 2.0);
Coche resultado = iCocheDAO.actualizarCoche(cocheActualizado);
Coche coche = new Coche(1, "Renault", "Megane RS", 2.0);
Coche cocheActualizado = iCocheDAO.actualizarCoche(coche);
if (resultado != null) {
System.out.println("Coche actualizado: " + resultado);
if (cocheActualizado != null) {
System.out.println("Coche actualizado: " + cocheActualizado);
} else {
System.out.println("No se encontró el coche para actualizar");
}
System.out.println("-------------------------------------------------\n\n");
}
private void borrarCoche(int id) {
System.out.println("#########################################");
System.out.println("BORRAR COCHE ID: " + id);
System.out.println("#########################################");
System.out.println("#########################################\n");
Coche coche = iCocheDAO.obtenerCochePorID(id);
@ -105,6 +128,24 @@ public class AppConcesionario {
} else {
System.out.println("No existe coche con id " + id);
}
System.out.println("-------------------------------------------------\n\n");
}
/**
* @param string
*/
private void consultarCochesMarca(String marca) {
System.out.println("#########################################");
System.out.println("CONSULTA POR Marca: " + marca);
System.out.println("#########################################\n");
List<Coche> listaCoches = iCocheDAO.obtenerCochePorMarca(marca);
for (Coche coche : listaCoches) {
System.out.println(coche);
}
System.out.println("-------------------------------------------------\n\n");
}
}

View File

@ -10,5 +10,5 @@ public interface ICocheDAO {
public Coche crearCoche(Coche coche);
public void borrarCoche(Coche coche);
public List<Coche> obtenerListaCoches();
public List<Coche> obtenerCochePorModelo(String modelo);
public List<Coche> obtenerCochePorMarca(String marca);
}

View File

@ -2,73 +2,83 @@ package org.lapaloma.concesionario.dao.impl;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import org.lapaloma.concesionario.dao.ICocheDAO;
import org.lapaloma.concesionario.vo.Coche;
public class CocheDaoArray implements ICocheDAO {
private List<Coche> listaCoches;
private List<Coche> listaCoches;
public CocheDaoArray() {
listaCoches = new ArrayList<>();
public CocheDaoArray() {
listaCoches = new ArrayList<>();
// Simulamos los inserts de la base de datos
listaCoches.add(new Coche(1, "Renault", "Megane", 1.5));
listaCoches.add(new Coche(2, "Seat", "León", 1.6));
listaCoches.add(new Coche(3, "Suzuki", "Vitara", 1.9));
listaCoches.add(new Coche(4, "Seat", "Clio", 1.4));
listaCoches.add(new Coche(5, "Seat", "Ibiza", 1.4));
listaCoches.add(new Coche(6, "Peugeot", "308", 2.0));
listaCoches.add(new Coche(7, "Renault", "Megane", 1.5));
}
// Simulamos los inserts de la base de datos
listaCoches.add(new Coche(1, "Renault", "Megane", 1.5));
listaCoches.add(new Coche(2, "Seat", "León", 1.6));
listaCoches.add(new Coche(3, "Suzuki", "Vitara", 1.9));
listaCoches.add(new Coche(4, "Seat", "Clio", 1.4));
listaCoches.add(new Coche(5, "Seat", "Ibiza", 1.4));
listaCoches.add(new Coche(6, "Peugeot", "308", 2.0));
listaCoches.add(new Coche(7, "Renault", "Megane", 1.5));
}
@Override
public Coche obtenerCochePorID(int identificador) {
Coche coche = null;
for (Coche cocheLista : listaCoches) {
if (cocheLista.getIdentificador() == identificador) {
coche = cocheLista;
break;
}
}
return coche;
}
@Override
public Coche obtenerCochePorID(int identificador) {
Coche coche = null;
for (Coche cocheLista : listaCoches) {
if (cocheLista.getIdentificador() == identificador) {
coche = cocheLista;
break;
}
}
return coche;
}
@Override
public Coche actualizarCoche(Coche coche) {
Coche cocheActualizado = null;
@Override
public Coche actualizarCoche(Coche coche) {
Coche cocheActualizado = null;
for (int i = 0; i < listaCoches.size(); i++) {
Coche cocheLista= listaCoches.get(i);
if (cocheLista.getIdentificador() == coche.getIdentificador()) {
listaCoches.set(i, coche);
cocheActualizado = coche;
break;
}
}
return cocheActualizado; // no encontrado
}
for (int i = 0; i < listaCoches.size(); i++) {
Coche cocheLista = listaCoches.get(i);
if (cocheLista.getIdentificador() == coche.getIdentificador()) {
listaCoches.set(i, coche);
cocheActualizado = coche;
break;
}
}
return cocheActualizado; // no encontrado
}
@Override
public Coche crearCoche(Coche coche) {
listaCoches.add(coche);
return coche;
}
@Override
public Coche crearCoche(Coche coche) {
listaCoches.add(coche);
return coche;
}
@Override
public void borrarCoche(Coche coche) {
listaCoches.removeIf(c -> c.getIdentificador() == coche.getIdentificador());
}
@Override
public void borrarCoche(Coche coche) {
listaCoches.removeIf(c -> c.getIdentificador() == coche.getIdentificador());
}
@Override
public List<Coche> obtenerListaCoches() {
return new ArrayList<>(listaCoches); // devolvemos copia
}
@Override
public List<Coche> obtenerListaCoches() {
return new ArrayList<>(listaCoches); // devolvemos copia
}
@Override
public List<Coche> obtenerCochePorModelo(String modelo) {
return listaCoches.stream().filter(c -> c.getModelo().equalsIgnoreCase(modelo)).collect(Collectors.toList());
}
@Override
public List<Coche> obtenerCochePorMarca(String marca) {
List<Coche> listaCochesMarca= null;
for (Coche coche : listaCoches) {
if (coche.getMarca().equalsIgnoreCase(marca)) {
if (listaCochesMarca == null) {
listaCochesMarca = new ArrayList<>();
}
listaCochesMarca.add(coche);
}
}
return listaCochesMarca;
}
}

View File

@ -5,51 +5,63 @@ package org.lapaloma.concesionario.vo;
* Coche: Clase de persistencia que representa un coche de un concesionario.
*
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
* @date 4 dic 2025
* @date 03 marzo 2026
*
*
*/
public class Coche {
private int identificador;
private String marca;
private String modelo;
private double cilindrada;
public Coche(int identificador, String marca, String modelo, double cilindrada) {
super();
this.identificador = identificador;
this.marca = marca;
this.modelo = modelo;
this.cilindrada = cilindrada;
}
public int getIdentificador() {
return identificador;
}
public void setIdentificador(int identificador) {
this.identificador = identificador;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public double getCilindrada() {
return cilindrada;
}
public void setCilindrada(double cilindrada) {
this.cilindrada = cilindrada;
}
@Override
public String toString() {
return "Coche [identificador=" + identificador + ", marca=" + marca + ", modelo=" + modelo + ", cilindrada="
+ cilindrada + "]";
}
private int identificador;
private String marca;
private String modelo;
private double cilindrada;
public Coche(int identificador, String marca, String modelo, double cilindrada) {
super();
this.identificador = identificador;
this.marca = marca;
this.modelo = modelo;
this.cilindrada = cilindrada;
}
public Coche() {
super();
}
public int getIdentificador() {
return identificador;
}
public void setIdentificador(int identificador) {
this.identificador = identificador;
}
public String getMarca() {
return marca;
}
public void setMarca(String marca) {
this.marca = marca;
}
public String getModelo() {
return modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public double getCilindrada() {
return cilindrada;
}
public void setCilindrada(double cilindrada) {
this.cilindrada = cilindrada;
}
@Override
public String toString() {
return "Coche [identificador=" + identificador + ", marca=" + marca + ", modelo=" + modelo + ", cilindrada="
+ cilindrada + "]";
}
}