Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit 5b756cb

Browse files
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)

AltStyle によって変換されたページ (->オリジナル) /