Skip to content

Commit b8384b2

Browse files
committed
Added Activity 15 Application - Unit 15
1 parent 5b756cb commit b8384b2

File tree

6 files changed

+660
-0
lines changed

6 files changed

+660
-0
lines changed
Lines changed: 245 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,245 @@
1+
package unit15.jpa.Actividad15_Aplicacion;
2+
3+
import java.text.ParseException;
4+
import java.text.SimpleDateFormat;
5+
import java.util.Date;
6+
import java.util.List;
7+
import java.util.Locale;
8+
import java.util.Scanner;
9+
import javax.persistence.EntityManager;
10+
import javax.persistence.EntityManagerFactory;
11+
import javax.persistence.Persistence;
12+
import javax.persistence.Query;
13+
14+
15+
public class Main {
16+
17+
public static void main(String[] args) {
18+
EntityManagerFactory emf
19+
= Persistence.createEntityManagerFactory("taxistasPU");
20+
int opc;
21+
do {
22+
System.out.println("1. Alta nuevo taxista.");
23+
System.out.println("2. Alta nuevo taxi.");
24+
System.out.println("3. Comienzo jornada taxista.");
25+
System.out.println("4. Fin jornada taxista.");
26+
System.out.println("5. Información de un taxista y su taxi.");
27+
System.out.println("6. Mostrar taxistas trabajando.");
28+
System.out.println("7. Mostrar taxistas fuera de servicio.");
29+
System.out.println("9. Salir");
30+
opc = new Scanner(System.in).nextInt();
31+
32+
switch (opc) {
33+
case 1 -> nuevoTaxista(emf);
34+
case 2 -> nuevoTaxi(emf);
35+
case 3 -> comienzoJornadaTaxista(emf);
36+
case 4 -> finJornada(emf);
37+
case 5 -> informacionTaxistaTaxi(emf);
38+
case 6 -> taxistasTrabajando(emf);
39+
case 7 -> taxistasFueraServicio(emf);
40+
}
41+
} while (opc != 9);
42+
43+
emf.close();
44+
}
45+
46+
47+
static void nuevoTaxista(EntityManagerFactory emf) {
48+
TaxistaDAO dao = new TaxistaDAO(emf);
49+
50+
System.out.println("DNI: ");
51+
String dni = new Scanner(System.in).nextLine();
52+
53+
54+
if (dao.findTaxista(dni) != null) {
55+
System.out.println("Ese taxista ya existe.");
56+
} else {
57+
58+
System.out.println("Nombre: ");
59+
String nombre = new Scanner(System.in).nextLine();
60+
61+
System.out.println("Fecha (aaaa/mm/dd): ");
62+
String fechaTexto = new Scanner(System.in).nextLine();
63+
64+
SimpleDateFormat format = new SimpleDateFormat("yyyy/MM/dd");
65+
Date fechaNacimiento=null;
66+
try {
67+
fechaNacimiento = format.parse(fechaTexto);
68+
} catch (ParseException ex) {
69+
System.out.println("Formato de fecha incorrecto");
70+
}
71+
Taxista taxista = new Taxista(dni, nombre, fechaNacimiento);
72+
73+
try {
74+
dao.create(taxista);
75+
} catch (Exception ex) {
76+
System.out.println("Error al insertar taxista");
77+
}
78+
}
79+
}
80+
81+
82+
static void nuevoTaxi(EntityManagerFactory emf) {
83+
TaxiDAO dao = new TaxiDAO(emf);
84+
85+
System.out.println("Matricula: ");
86+
String matricula = new Scanner(System.in).nextLine();
87+
88+
if (dao.findTaxi(matricula) != null) { //buscamos el taxi
89+
System.out.println("Ese taxi ya existe.");
90+
} else {
91+
92+
System.out.println("Precio: ");
93+
Double precio = new Scanner(System.in).useLocale(Locale.US).nextDouble();
94+
95+
System.out.println("Número de plazas: ");
96+
int plazas = new Scanner(System.in).nextInt();
97+
98+
99+
Taxi taxi = new Taxi(matricula, precio, plazas);
100+
try {
101+
dao.create(taxi);
102+
} catch (Exception ex) {
103+
System.out.println("Error al insertar taxi.");
104+
}
105+
}
106+
}
107+
108+
109+
static void informacionTaxistaTaxi(EntityManagerFactory emf) {
110+
TaxistaDAO dao = new TaxistaDAO(emf);
111+
112+
System.out.println("Dni:");
113+
String dni = new Scanner(System.in).nextLine();
114+
115+
Taxista taxista = dao.findTaxista(dni);
116+
117+
if (taxista == null) {
118+
System.out.println("El taxista no existe");
119+
} else {
120+
121+
Taxi taxi = taxista.getTaxi();
122+
123+
//mostramos
124+
System.out.println(taxista);
125+
if (taxi != null) {
126+
127+
System.out.println(taxi);
128+
} else {
129+
130+
System.out.println("Fuera de servicio: sin taxi asignado.");
131+
}
132+
}
133+
}
134+
135+
136+
static void taxistasTrabajando(EntityManagerFactory emf) {
137+
EntityManager em = emf.createEntityManager();
138+
139+
Query query = em.createNamedQuery("Taxista.trabajando");
140+
List<Taxista> trabajando = query.getResultList();
141+
142+
for (Taxista t : trabajando) {
143+
System.out.println(t + " --> " + t.getTaxi());
144+
}
145+
146+
em.close();
147+
}
148+
149+
150+
static void taxistasFueraServicio(EntityManagerFactory emf) {
151+
EntityManager em = emf.createEntityManager();
152+
153+
Query query = em.createNamedQuery("Taxista.fueraServicio");
154+
List<Taxista> trabajando = query.getResultList();
155+
156+
for (Taxista t : trabajando) {
157+
System.out.println(t);
158+
}
159+
160+
em.close();
161+
}
162+
163+
164+
static void comienzoJornadaTaxista(EntityManagerFactory emf) {
165+
EntityManager em = emf.createEntityManager();
166+
167+
TaxistaDAO taxistaDAO = new TaxistaDAO(emf);
168+
TaxiDAO taxiDAO = new TaxiDAO(emf);
169+
170+
System.out.println("Taxistas fuera de servicio");
171+
taxistasFueraServicio(emf);
172+
173+
System.out.println("DNI:");
174+
String dni = new Scanner(System.in).nextLine();
175+
176+
Taxista taxista = taxistaDAO.findTaxista(dni);
177+
178+
if (taxista == null) {
179+
System.out.println("Ese taxista no existe");
180+
} else {
181+
182+
if (taxista.getTaxi() != null) {
183+
System.out.println("El taxista ya está trabajando.");
184+
} else {
185+
186+
String jpql = "SELECT taxi FROM Taxi taxi WHERE taxi NOT IN ("
187+
+ "SELECT taxista.taxi FROM Taxista taxista WHERE taxista.taxi IS NOT NULL)";
188+
189+
Query query = em.createQuery(jpql);
190+
191+
List<Taxi> aparcados = query.getResultList();
192+
193+
System.out.println("Taxis disponibles:");
194+
for (Taxi t : aparcados) {
195+
System.out.println(t);
196+
}
197+
198+
System.out.println("Matrícula:");
199+
String matricula = new Scanner(System.in).nextLine();
200+
201+
Taxi taxi = taxiDAO.findTaxi(matricula);
202+
taxista.setTaxi(taxi);
203+
try {
204+
taxistaDAO.edit(taxista);
205+
} catch (Exception ex) {
206+
System.out.println("Error al actualizar la BD.");
207+
System.out.println("Coche asignado");
208+
}
209+
}
210+
}
211+
}
212+
213+
214+
static void finJornada(EntityManagerFactory emf) {
215+
EntityManager em = emf.createEntityManager();
216+
217+
TaxistaDAO taxistaDAO = new TaxistaDAO(emf);
218+
TaxiDAO taxiDAO = new TaxiDAO(emf);
219+
220+
System.out.println("Taxistas trabajando.");
221+
taxistasTrabajando(emf);
222+
System.out.println("DNI:");
223+
String dni = new Scanner(System.in).nextLine();
224+
225+
Taxista taxista = taxistaDAO.findTaxista(dni);
226+
227+
if (taxista == null) {
228+
System.out.println("Ese taxista no existe");
229+
} else {
230+
//vamos a comprobar si ya está trabajando
231+
if (taxista.getTaxi() == null) {
232+
System.out.println("El taxista NO está trabajando.");
233+
} else {
234+
//Vamos a poner a nulo la relación que tiene con el taxi
235+
taxista.setTaxi(null);
236+
try {
237+
taxistaDAO.edit(taxista); //actualizamos la BD
238+
} catch (Exception ex) {
239+
System.out.println("Error al actualizar la BD.");
240+
}
241+
System.out.println("Taxista fuera de servicio");
242+
}
243+
}
244+
}
245+
}
Lines changed: 53 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,53 @@
1+
package unit15.jpa.Actividad15_Aplicacion;
2+
3+
import java.io.Serializable;
4+
import javax.persistence.Entity;
5+
import javax.persistence.Id;
6+
7+
8+
@Entity
9+
public class Taxi implements Serializable {
10+
@Id
11+
private String matricula;
12+
private Double precio;
13+
private int numPlazas;
14+
15+
public Taxi(String matricula, Double precio, int numPlazas) {
16+
this.matricula = matricula;
17+
this.precio = precio;
18+
this.numPlazas = numPlazas;
19+
}
20+
21+
public Taxi() {
22+
}
23+
24+
public String getMatricula() {
25+
return matricula;
26+
}
27+
28+
public void setMatricula(String matricula) {
29+
this.matricula = matricula;
30+
}
31+
32+
public Double getPrecio() {
33+
return precio;
34+
}
35+
36+
public void setPrecio(Double precio) {
37+
this.precio = precio;
38+
}
39+
40+
public int getNumPlazas() {
41+
return numPlazas;
42+
}
43+
44+
public void setNumPlazas(int numPlazas) {
45+
this.numPlazas = numPlazas;
46+
}
47+
48+
@Override
49+
public String toString() {
50+
return "Taxi{" + "matricula=" + matricula + ", precio=" +
51+
precio + ", numPlazas=" + numPlazas + '}';
52+
}
53+
}

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy