Skip to content

Commit 5b756cb

Browse files
committed
Added Activity 14 Aplicacion - Unit 15
1 parent 405e50f commit 5b756cb

File tree

5 files changed

+349
-0
lines changed

5 files changed

+349
-0
lines changed
Lines changed: 68 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,68 @@
1+
package unit15.jpa.Actividad14_Aplicacion;
2+
3+
import java.io.Serializable;
4+
import javax.persistence.Entity;
5+
import javax.persistence.GeneratedValue;
6+
import javax.persistence.Id;
7+
import javax.persistence.NamedQuery;
8+
9+
@Entity
10+
@NamedQuery(name="LlenadoDeposito.ultimoId",
11+
query="SELECT MAX(ll.id) FROM LlenadoDeposito ll")
12+
public class LlenadoDeposito implements Serializable {
13+
@Id
14+
@GeneratedValue
15+
Integer id;
16+
Integer litros;
17+
String tipoCombustible;
18+
Double importe;
19+
20+
public LlenadoDeposito(Integer litros, String tipoCombustible, Double importe) {
21+
this.litros = litros;
22+
this.tipoCombustible = tipoCombustible;
23+
this.importe = importe;
24+
}
25+
26+
public LlenadoDeposito() {
27+
}
28+
29+
public Integer getId() {
30+
return id;
31+
}
32+
33+
public void setId(Integer id) {
34+
this.id = id;
35+
}
36+
37+
public Integer getLitros() {
38+
return litros;
39+
}
40+
41+
public void setLitros(Integer litros) {
42+
this.litros = litros;
43+
}
44+
45+
public String getTipoCombustible() {
46+
return tipoCombustible;
47+
}
48+
49+
public void setTipoCombustible(String tipoCombustible) {
50+
this.tipoCombustible = tipoCombustible;
51+
}
52+
53+
public Double getImporte() {
54+
return importe;
55+
}
56+
57+
public void setImporte(Double importe) {
58+
this.importe = importe;
59+
}
60+
61+
@Override
62+
public String toString() {
63+
return "LLenadoDeposito{" + "id=" + id + ", litros=" + litros + ", tipoCombustible=" + tipoCombustible + ", importe=" + importe + '}';
64+
}
65+
66+
67+
68+
}
Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
1+
package unit15.jpa.Actividad14_Aplicacion;
2+
3+
import java.util.Date;
4+
import java.util.Calendar;
5+
import java.util.List;
6+
import java.util.Locale;
7+
import java.util.Scanner;
8+
import javax.persistence.EntityManager;
9+
import javax.persistence.EntityManagerFactory;
10+
import javax.persistence.EntityTransaction;
11+
import javax.persistence.Persistence;
12+
import javax.persistence.Query;
13+
14+
public class Main {
15+
16+
public static void main(String[] args) {
17+
int opc;
18+
EntityManagerFactory emf;
19+
emf = Persistence.createEntityManagerFactory("gasolineraPU");
20+
EntityManager em = emf.createEntityManager();
21+
22+
do {
23+
opc = menu();
24+
switch (opc) {
25+
case 1 -> repostajeNormal(em);
26+
case 2 -> repostajeFactura(em);
27+
case 3 -> verTodosRepostajes(em);
28+
case 4 -> importeTotal(em);
29+
case 5 -> llenadoDeposito(em);
30+
case 6 -> eliminarUltimoLlenado(em);
31+
case 7 -> verTodosLlenados(em);
32+
}
33+
} while (opc != 0);
34+
35+
}
36+
37+
public static int menu() {
38+
System.out.println("1. Repostaje normal.");
39+
System.out.println("2. Repostaje factura.");
40+
System.out.println("3. Ver todos los repostajes.");
41+
System.out.println("4. Importe total combustible vendido.");
42+
System.out.println("5. Llenado de depósito.");
43+
System.out.println("6. Eliminar último llenado de depósito.");
44+
System.out.println("7. Ver todos los llenado de depósito.");
45+
System.out.println("0. Salir");
46+
47+
return new Scanner(System.in).nextInt();
48+
}
49+
50+
public static void repostajeNormal(EntityManager em) {
51+
//Vamos a recoger la fecha y hora actual del sistema
52+
Date fechaHora = Calendar.getInstance().getTime();
53+
54+
System.out.println("Importe: ");
55+
Double importe = new Scanner(System.in).useLocale(Locale.US).nextDouble();
56+
57+
EntityTransaction tx = em.getTransaction();
58+
59+
RepostajeNormal r = new RepostajeNormal(fechaHora, importe);
60+
61+
tx.begin();
62+
em.persist(r);
63+
tx.commit();
64+
}
65+
66+
public static void repostajeFactura(EntityManager em) {
67+
//Vamos a recoger la fecha y hora actual del sistema
68+
Date fechaHora = Calendar.getInstance().getTime();
69+
70+
System.out.println("Importe: ");
71+
Double importe = new Scanner(System.in).useLocale(Locale.US).nextDouble();
72+
73+
System.out.println("Dni cliente:");
74+
String dni = new Scanner(System.in).nextLine();
75+
System.out.println("Matrícula vehículo:");
76+
String matricula = new Scanner(System.in).nextLine();
77+
78+
EntityTransaction tx = em.getTransaction();
79+
80+
RepostajeFactura r = new RepostajeFactura(fechaHora, importe, dni, matricula);
81+
82+
tx.begin();
83+
em.persist(r);
84+
tx.commit();
85+
}
86+
87+
public static void verTodosRepostajes(EntityManager em) {
88+
Query query = em.createNamedQuery("RepostajeNormal.todos");
89+
List<RepostajeNormal> todos = query.getResultList();
90+
91+
for(RepostajeNormal r: todos) {
92+
System.out.println(r);
93+
}
94+
}
95+
96+
public static void importeTotal(EntityManager em) {
97+
Query query = em.createNamedQuery("RepostajeNormal.importeTotal");
98+
List<Object> importeTotal = query.getResultList();
99+
100+
//la lista importeTotal tendrá un único objecto
101+
if (!importeTotal.isEmpty()) {
102+
System.out.println("Importe total: " + importeTotal.get(0) + " euros");
103+
}
104+
105+
}
106+
107+
public static void llenadoDeposito(EntityManager em) {
108+
109+
System.out.println("Litros: ");
110+
Integer litros = new Scanner(System.in).nextInt();
111+
112+
System.out.println("Tipo combustible:");
113+
String tipo = new Scanner(System.in).nextLine();
114+
System.out.println("Importe combustible:");
115+
Double importe = new Scanner(System.in).useLocale(Locale.US).nextDouble();
116+
117+
EntityTransaction tx = em.getTransaction();
118+
119+
LlenadoDeposito ll = new LlenadoDeposito(litros, tipo, importe);
120+
121+
tx.begin();
122+
em.persist(ll);
123+
tx.commit();
124+
}
125+
126+
public static void eliminarUltimoLlenado(EntityManager em) {
127+
EntityTransaction tx = em.getTransaction();
128+
Query query = em.createNamedQuery("LlenadoDeposito.ultimoId");
129+
List<Object> ids = query.getResultList();
130+
131+
//la lista importeTotal tendrá un único objecto
132+
if (!ids.isEmpty()) {
133+
int ultimoId = (Integer)ids.get(0);
134+
135+
String jpql = "DELETE FROM LlenadoDeposito ll " +
136+
"WHERE ll.id = ?1";
137+
query = em.createQuery(jpql);
138+
query.setParameter(1, ultimoId);
139+
tx.begin();
140+
query.executeUpdate();
141+
tx.commit();
142+
}
143+
}
144+
145+
public static void verTodosLlenados(EntityManager em) {
146+
String jpql = "SELECT ll FROM LlenadoDeposito ll";
147+
Query query = em.createQuery(jpql);
148+
List<LlenadoDeposito> todos = query.getResultList();
149+
150+
for(LlenadoDeposito ll: todos) {
151+
System.out.println(ll);
152+
}
153+
154+
}
155+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package unit15.jpa.Actividad14_Aplicacion;
2+
3+
import java.util.Date;
4+
import javax.persistence.Entity;
5+
6+
@Entity
7+
public class RepostajeFactura extends RepostajeNormal {
8+
protected String dni;
9+
protected String matricula;
10+
11+
public RepostajeFactura(Date fechaHora, Double importe, String dni, String matricula) {
12+
super(fechaHora, importe);
13+
this.dni = dni;
14+
this.matricula = matricula;
15+
}
16+
17+
public RepostajeFactura() {
18+
}
19+
20+
public String getDni() {
21+
return dni;
22+
}
23+
24+
public void setDni(String dni) {
25+
this.dni = dni;
26+
}
27+
28+
public String getMatricula() {
29+
return matricula;
30+
}
31+
32+
public void setMatricula(String matricula) {
33+
this.matricula = matricula;
34+
}
35+
36+
@Override
37+
public String toString() {
38+
return "RepostajeFactura{" + "id=" + id + ", fechaHora=" + fechaHora +
39+
", importe=" + importe +", dni=" + dni +", matricula=" + matricula + '}';
40+
}
41+
}
Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
package unit15.jpa.Actividad14_Aplicacion;
2+
3+
import java.io.Serializable;
4+
import java.util.Date;
5+
import javax.persistence.Entity;
6+
import javax.persistence.GeneratedValue;
7+
import javax.persistence.Id;
8+
import javax.persistence.Inheritance;
9+
import javax.persistence.InheritanceType;
10+
import javax.persistence.NamedQueries;
11+
import javax.persistence.NamedQuery;
12+
import javax.persistence.Temporal;
13+
import javax.persistence.TemporalType;
14+
15+
16+
@Entity
17+
@Inheritance(strategy=InheritanceType.JOINED)
18+
@NamedQueries({
19+
@NamedQuery(name="RepostajeNormal.importeTotal",
20+
query="SELECT SUM(r.importe) FROM RepostajeNormal r"),
21+
@NamedQuery(name="RepostajeNormal.todos",
22+
query="SELECT r FROM RepostajeNormal r")
23+
})
24+
public class RepostajeNormal implements Serializable {
25+
@Id
26+
@GeneratedValue
27+
protected Integer id;
28+
@Temporal(TemporalType.TIMESTAMP)
29+
protected Date fechaHora;
30+
protected Double importe;
31+
32+
public RepostajeNormal(Date fechaHora, Double importe) {
33+
this.fechaHora = fechaHora;
34+
this.importe = importe;
35+
}
36+
37+
public RepostajeNormal() {
38+
}
39+
40+
public Integer getId() {
41+
return id;
42+
}
43+
44+
public void setId(Integer id) {
45+
this.id = id;
46+
}
47+
48+
public Date getFechaHora() {
49+
return fechaHora;
50+
}
51+
52+
public void setFechaHora(Date fechaHora) {
53+
this.fechaHora = fechaHora;
54+
}
55+
56+
public Double getImporte() {
57+
return importe;
58+
}
59+
60+
public void setImporte(Double importe) {
61+
this.importe = importe;
62+
}
63+
64+
@Override
65+
public String toString() {
66+
return "RepostajeNormal{" + "id=" + id + ", fechaHora=" +
67+
fechaHora + ", importe=" + importe + '}';
68+
}
69+
}
Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<persistence version="2.1" 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">
3+
<persistence-unit name="gasolineraPU" transaction-type="RESOURCE_LOCAL">
4+
<provider>org.eclipse.persistence.jpa.PersistenceProvider</provider>
5+
<class>codigo.LlenadoDeposito</class>
6+
<class>codigo.RepostajeFactura</class>
7+
<class>codigo.RepostajeNormal</class>
8+
<properties>
9+
<property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/Persistencia?zeroDateTimeBehavior=CONVERT_TO_NULL"/>
10+
<property name="javax.persistence.jdbc.user" value="usuario"/>
11+
<property name="javax.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver"/>
12+
<property name="javax.persistence.jdbc.password" value="usuario12345"/>
13+
<property name="javax.persistence.schema-generation.database.action" value="create"/>
14+
</properties>
15+
</persistence-unit>
16+
</persistence>

0 commit comments

Comments
 (0)