Compare commits
12 Commits
84e2f31c6a
...
main
| Author | SHA1 | Date | |
|---|---|---|---|
| cda052c201 | |||
| c6cf4cc521 | |||
| 4bd06846e9 | |||
| 50c9861107 | |||
| 78e1844de0 | |||
| d7786fbc87 | |||
| f2e65af1e8 | |||
| ace5b8314a | |||
| 905014d150 | |||
| 0c733fbd4e | |||
| d9548b68b2 | |||
| 5a112e42b0 |
7
.idea/jpa.xml
generated
Normal file
7
.idea/jpa.xml
generated
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<project version="4">
|
||||||
|
<component name="JpaBuddyIdeaProjectConfig">
|
||||||
|
<option name="defaultUnitInitialized" value="true" />
|
||||||
|
<option name="renamerInitialized" value="true" />
|
||||||
|
</component>
|
||||||
|
</project>
|
||||||
26
.idea/libraries/librerias.xml
generated
Normal file
26
.idea/libraries/librerias.xml
generated
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
<component name="libraryTable">
|
||||||
|
<library name="librerias">
|
||||||
|
<CLASSES>
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/JDBC_Oracle_Connection_Pool/ucp.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/Driver_MySQL_Connector_J/mysql-connector-java-8.0.19.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/mongoDB-Java-driver/mongo-java-driver-3.12.12.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/eclipselink.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/jpa/org.eclipse.persistence.jpars_2.5.2.v20140319-9ad6abd.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/jpa/org.eclipse.persistence.jpa.modelgen_2.5.2.v20140319-9ad6abd.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/jpa/javax.persistence_2.1.0.v201304241213.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/moxy/javax.xml.stream_1.0.1.v201004272200.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/moxy/javax.xml.bind_2.2.0.v201105210648.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/moxy/javax.mail_1.4.0.v201005080615.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/moxy/javax.activation_1.1.0.v201108011116.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/moxy/com.sun.xml.bind_2.2.0.v201004141950.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/moxy/com.sun.tools.xjc_2.2.0.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/Jackson/jackson-databind-2.9.5.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/Jackson/jackson-core-2.9.5.jar!/" />
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/Jackson/jackson-annotations-2.9.0.jar!/" />
|
||||||
|
</CLASSES>
|
||||||
|
<JAVADOC />
|
||||||
|
<SOURCES>
|
||||||
|
<root url="jar://$PROJECT_DIR$/librerias/EclipseLink2.5.2/jlib/moxy/com.sun.tools.xjc_2.2.0.jar!/1.0" />
|
||||||
|
</SOURCES>
|
||||||
|
</library>
|
||||||
|
</component>
|
||||||
3
.idea/misc.xml
generated
3
.idea/misc.xml
generated
@@ -1,10 +1,11 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
<project version="4">
|
<project version="4">
|
||||||
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
<component name="ExternalStorageConfigurationManager" enabled="true" />
|
||||||
<component name="JavadocGenerationManager">
|
<component name="JavadocGenerationManager">
|
||||||
<option name="OUTPUT_DIRECTORY" value="$USER_HOME$/Downloads/javadoc" />
|
<option name="OUTPUT_DIRECTORY" value="$USER_HOME$/Downloads/javadoc" />
|
||||||
<option name="OPTION_INCLUDE_LIBS" value="true" />
|
<option name="OPTION_INCLUDE_LIBS" value="true" />
|
||||||
</component>
|
</component>
|
||||||
<component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="homebrew-22" project-jdk-type="JavaSDK">
|
<component name="ProjectRootManager" version="2" languageLevel="JDK_23" default="true" project-jdk-name="homebrew-23" project-jdk-type="JavaSDK">
|
||||||
<output url="file://$PROJECT_DIR$/out" />
|
<output url="file://$PROJECT_DIR$/out" />
|
||||||
</component>
|
</component>
|
||||||
</project>
|
</project>
|
||||||
3
.idea/uiDesigner.xml
generated
3
.idea/uiDesigner.xml
generated
@@ -121,4 +121,7 @@
|
|||||||
</item>
|
</item>
|
||||||
</group>
|
</group>
|
||||||
</component>
|
</component>
|
||||||
|
<component name="uidesigner-configuration">
|
||||||
|
<option name="DEFAULT_LAYOUT_MANAGER" value="BorderLayout" />
|
||||||
|
</component>
|
||||||
</project>
|
</project>
|
||||||
9
Ejercicios.eml
Normal file
9
Ejercicios.eml
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<component inherit-compiler-output="true" inheritJdk="true">
|
||||||
|
<output-test url="file://$MODULE_DIR$/out/test/Ejercicios"/>
|
||||||
|
<exclude-output/>
|
||||||
|
<contentEntry url="file://$MODULE_DIR$"/>
|
||||||
|
<levels>
|
||||||
|
<level name="librerias" value="project"/>
|
||||||
|
</levels>
|
||||||
|
</component>
|
||||||
@@ -7,5 +7,6 @@
|
|||||||
</content>
|
</content>
|
||||||
<orderEntry type="inheritedJdk" />
|
<orderEntry type="inheritedJdk" />
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
<orderEntry type="sourceFolder" forTests="false" />
|
||||||
|
<orderEntry type="library" name="librerias" level="project" />
|
||||||
</component>
|
</component>
|
||||||
</module>
|
</module>
|
||||||
22
EjerciciosProgramacion.userlibraries
Normal file
22
EjerciciosProgramacion.userlibraries
Normal file
@@ -0,0 +1,22 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<eclipse-userlibraries>
|
||||||
|
<library name="librerias">
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/JDBC_Oracle_Connection_Pool/ucp.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/Driver_MySQL_Connector_J/mysql-connector-java-8.0.19.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/mongoDB-Java-driver/mongo-java-driver-3.12.12.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/eclipselink.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/jpa/org.eclipse.persistence.jpars_2.5.2.v20140319-9ad6abd.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/jpa/org.eclipse.persistence.jpa.modelgen_2.5.2.v20140319-9ad6abd.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/jpa/javax.persistence_2.1.0.v201304241213.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/moxy/javax.xml.stream_1.0.1.v201004272200.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/moxy/javax.xml.bind_2.2.0.v201105210648.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/moxy/javax.mail_1.4.0.v201005080615.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/moxy/javax.activation_1.1.0.v201108011116.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/moxy/com.sun.xml.bind_2.2.0.v201004141950.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/EclipseLink2.5.2/jlib/moxy/com.sun.tools.xjc_2.2.0.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/Jackson/jackson-databind-2.9.5.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/Jackson/jackson-core-2.9.5.jar" />
|
||||||
|
<archive path="/Users/h4ckx0r/IdeaProjects/EjerciciosProgramacion/librerias/Jackson/jackson-annotations-2.9.0.jar" />
|
||||||
|
</library>
|
||||||
|
</eclipse-userlibraries>
|
||||||
|
|
||||||
Binary file not shown.
BIN
librerias/EclipseLink2.5.2/jlib/eclipselink.jar
Normal file
BIN
librerias/EclipseLink2.5.2/jlib/eclipselink.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
librerias/EclipseLink2.5.2/jlib/moxy/com.sun.tools.xjc_2.2.0.jar
Normal file
BIN
librerias/EclipseLink2.5.2/jlib/moxy/com.sun.tools.xjc_2.2.0.jar
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
librerias/JDBC_Oracle_Connection_Pool/ucp.jar
Normal file
BIN
librerias/JDBC_Oracle_Connection_Pool/ucp.jar
Normal file
Binary file not shown.
BIN
librerias/Jackson/jackson-annotations-2.9.0.jar
Normal file
BIN
librerias/Jackson/jackson-annotations-2.9.0.jar
Normal file
Binary file not shown.
BIN
librerias/Jackson/jackson-core-2.9.5.jar
Normal file
BIN
librerias/Jackson/jackson-core-2.9.5.jar
Normal file
Binary file not shown.
BIN
librerias/Jackson/jackson-databind-2.9.5.jar
Normal file
BIN
librerias/Jackson/jackson-databind-2.9.5.jar
Normal file
Binary file not shown.
BIN
librerias/mongoDB-Java-driver/mongo-java-driver-3.12.12.jar
Normal file
BIN
librerias/mongoDB-Java-driver/mongo-java-driver-3.12.12.jar
Normal file
Binary file not shown.
9
src/capitulo07/bloque01/HexNums.java
Normal file
9
src/capitulo07/bloque01/HexNums.java
Normal file
@@ -0,0 +1,9 @@
|
|||||||
|
package capitulo07.bloque01;
|
||||||
|
|
||||||
|
public class HexNums {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
for (int i = 0; i <= 100; i++) { // Son 101 números, pero bueno, quería incluir el 0 y el 100
|
||||||
|
System.out.println("Dec: " + i + " | Hex: " + Integer.toHexString(i));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
31
src/capitulo07/bloque01/LeerFicheroPropiedades.java
Normal file
31
src/capitulo07/bloque01/LeerFicheroPropiedades.java
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
package capitulo07.bloque01;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileNotFoundException;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.nio.charset.Charset;
|
||||||
|
import java.nio.charset.StandardCharsets;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
public class LeerFicheroPropiedades {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
Properties propiedades = new Properties();
|
||||||
|
try {
|
||||||
|
File archivo = new File("./src/capitulo07/bloque01/ficheroPropiedades.properties");
|
||||||
|
propiedades.load(new FileReader(archivo, StandardCharsets.UTF_8));
|
||||||
|
} catch (FileNotFoundException e) {
|
||||||
|
System.out.println("No se ha encontrado el fichero");
|
||||||
|
} catch (IOException e) {
|
||||||
|
System.out.println("Error al leer el fichero");
|
||||||
|
}
|
||||||
|
|
||||||
|
System.out.println(Charset.availableCharsets());
|
||||||
|
System.out.println( "Nombre: " + propiedades.getProperty("NOMBRE"));
|
||||||
|
System.out.println( "Apellidos: " + propiedades.getProperty("APELLIDOS"));
|
||||||
|
System.out.println( "Edad: " + Integer.valueOf(propiedades.getProperty("EDAD")));
|
||||||
|
System.out.println( "Altura: " + Float.valueOf(propiedades.getProperty("ALTURA")));
|
||||||
|
System.out.println( "Soltero: " + Boolean.valueOf(propiedades.getProperty("SOLTERO")));
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
35
src/capitulo07/bloque01/ListaWrappers.java
Normal file
35
src/capitulo07/bloque01/ListaWrappers.java
Normal file
@@ -0,0 +1,35 @@
|
|||||||
|
package capitulo07.bloque01;
|
||||||
|
|
||||||
|
public class ListaWrappers {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println("Integer:");
|
||||||
|
System.out.println("\tBytes: " + Integer.BYTES);
|
||||||
|
System.out.println("\tValor Máximo: " + Integer.MAX_VALUE);
|
||||||
|
System.out.println("\tValor Mínimo: " + Integer.MIN_VALUE);
|
||||||
|
|
||||||
|
System.out.println("\nByte:");
|
||||||
|
System.out.println("\tBytes: " + Byte.BYTES);
|
||||||
|
System.out.println("\tValor Máximo: " + Byte.MAX_VALUE);
|
||||||
|
System.out.println("\tValor Mínimo: " + Byte.MIN_VALUE);
|
||||||
|
|
||||||
|
System.out.println("\nShort:");
|
||||||
|
System.out.println("\tBytes: " + Short.BYTES);
|
||||||
|
System.out.println("\tValor Máximo: " + Short.MAX_VALUE);
|
||||||
|
System.out.println("\tValor Mínimo: " + Short.MIN_VALUE);
|
||||||
|
|
||||||
|
System.out.println("\nLong:");
|
||||||
|
System.out.println("\tBytes: " + Long.BYTES);
|
||||||
|
System.out.println("\tValor Máximo: " + Long.MAX_VALUE);
|
||||||
|
System.out.println("\tValor Mínimo: " + Long.MIN_VALUE);
|
||||||
|
|
||||||
|
System.out.println("\nFloat:");
|
||||||
|
System.out.println("\tBytes: " + Float.BYTES);
|
||||||
|
System.out.println("\tValor Máximo: " + Float.MAX_VALUE);
|
||||||
|
System.out.println("\tValor Mínimo: " + Float.MIN_VALUE);
|
||||||
|
|
||||||
|
System.out.println("\nDouble:");
|
||||||
|
System.out.println("\tBytes: " + Double.BYTES);
|
||||||
|
System.out.println("\tValor Máximo: " + Double.MAX_VALUE);
|
||||||
|
System.out.println("\tValor Mínimo: " + Double.MIN_VALUE);
|
||||||
|
}
|
||||||
|
}
|
||||||
34
src/capitulo07/bloque01/Password.java
Normal file
34
src/capitulo07/bloque01/Password.java
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
package capitulo07.bloque01;
|
||||||
|
|
||||||
|
import static capitulo04.utils.Utils.*;
|
||||||
|
|
||||||
|
|
||||||
|
public class Password {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
boolean mayuscula;
|
||||||
|
boolean minuscula;
|
||||||
|
boolean digito;
|
||||||
|
boolean caracter;
|
||||||
|
do {
|
||||||
|
mayuscula = false;
|
||||||
|
minuscula = false;
|
||||||
|
digito = false;
|
||||||
|
caracter = false;
|
||||||
|
String password = solicitarStringScannerInline("Introduzca una contraseña: ");
|
||||||
|
|
||||||
|
for (Character c : password.toCharArray()) {
|
||||||
|
if (Character.isUpperCase(c)) mayuscula = true;
|
||||||
|
if (Character.isLowerCase(c)) minuscula = true;
|
||||||
|
if (Character.isDigit(c)) digito = true;
|
||||||
|
if (!Character.isLetterOrDigit(c)) caracter = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!mayuscula) System.out.println("La contraseña tiene que tener una mayúscula");
|
||||||
|
if (!minuscula) System.out.println("La contraseña tiene que tener una minúscula");
|
||||||
|
if (!digito) System.out.println("La contraseña tiene que tener un digito");
|
||||||
|
if (!caracter) System.out.println("La contraseña tiene que tener un carácter no alfanumérico");
|
||||||
|
|
||||||
|
} while (!(mayuscula && minuscula && digito && caracter));
|
||||||
|
System.out.println("Contraseña guardada correctamente");
|
||||||
|
}
|
||||||
|
}
|
||||||
6
src/capitulo07/bloque01/ficheroPropiedades.properties
Normal file
6
src/capitulo07/bloque01/ficheroPropiedades.properties
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
# Datos del usuario en uso
|
||||||
|
NOMBRE=Natanael
|
||||||
|
APELLIDOS=G<EFBFBD>mez Ortiz
|
||||||
|
EDAD=18
|
||||||
|
ALTURA=160.6
|
||||||
|
SOLTERO=true
|
||||||
19
src/capitulo07/bloque02/Ejercicio01.java
Normal file
19
src/capitulo07/bloque02/Ejercicio01.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package capitulo07.bloque02;
|
||||||
|
|
||||||
|
public class Ejercicio01 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
double x = 0.0;
|
||||||
|
double y1;
|
||||||
|
double y2;
|
||||||
|
|
||||||
|
do {
|
||||||
|
x += 0.00001;
|
||||||
|
y1 = Math.sqrt(x);
|
||||||
|
y2 = -Math.log(x);
|
||||||
|
} while (Math.abs(y1 - y2) > 0.001);
|
||||||
|
|
||||||
|
System.out.println("El valor de x es: " + x);
|
||||||
|
System.out.println("El valor de y1 es: " + y1);
|
||||||
|
System.out.println("El valor de y2 es: " + y2);
|
||||||
|
}
|
||||||
|
}
|
||||||
19
src/capitulo07/bloque02/Ejercicio02.java
Normal file
19
src/capitulo07/bloque02/Ejercicio02.java
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
package capitulo07.bloque02;
|
||||||
|
|
||||||
|
public class Ejercicio02 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
double pi = 0;
|
||||||
|
|
||||||
|
boolean suma = true;
|
||||||
|
for (int i = 1; true; i+=2) {
|
||||||
|
if (suma) {
|
||||||
|
pi += 4.0/i;
|
||||||
|
} else {
|
||||||
|
pi -= 4.0/i;
|
||||||
|
}
|
||||||
|
suma = !suma;
|
||||||
|
System.out.println((Math.PI) + " | " + pi);
|
||||||
|
if (Math.abs(Math.PI - pi) < 0.00001) break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
7
src/capitulo07/bloque02/Ejercicio03.java
Normal file
7
src/capitulo07/bloque02/Ejercicio03.java
Normal file
@@ -0,0 +1,7 @@
|
|||||||
|
package capitulo07.bloque02;
|
||||||
|
|
||||||
|
public class Ejercicio03 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
System.out.println(Math.hypot(4,5));
|
||||||
|
}
|
||||||
|
}
|
||||||
65
src/capitulo07/bloque02/Ejercicio04.java
Normal file
65
src/capitulo07/bloque02/Ejercicio04.java
Normal file
@@ -0,0 +1,65 @@
|
|||||||
|
package capitulo07.bloque02;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.GregorianCalendar;
|
||||||
|
import java.util.TimeZone;
|
||||||
|
|
||||||
|
public class Ejercicio04 {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
String fecha = JOptionPane.showInputDialog("Mete una fecha con el siguiente formato: dd/MM/yyyy");
|
||||||
|
SimpleDateFormat formatoFecha = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
Date fechaFormateada = null;
|
||||||
|
Calendar fechaCalendar = null;
|
||||||
|
try {
|
||||||
|
fechaFormateada = formatoFecha.parse(fecha);
|
||||||
|
fechaCalendar = new GregorianCalendar();
|
||||||
|
fechaCalendar.setTimeInMillis(fechaFormateada.getTime());
|
||||||
|
} catch (ParseException e) {
|
||||||
|
System.err.println("No se ha introducido la fecha en un formato válido");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("Date:");
|
||||||
|
System.out.println("\tAño: " + new SimpleDateFormat("yyyy").format(fechaFormateada));
|
||||||
|
System.out.println("\tMes: " + new SimpleDateFormat("MM").format(fechaFormateada));
|
||||||
|
System.out.println("\tDía: " + new SimpleDateFormat("dd").format(fechaFormateada));
|
||||||
|
System.out.println("\tHora: " + new SimpleDateFormat("HH").format(fechaFormateada));
|
||||||
|
System.out.println("\tMinutos: " + new SimpleDateFormat("mm").format(fechaFormateada));
|
||||||
|
System.out.println("\tSegundos: " + new SimpleDateFormat("ss").format(fechaFormateada));
|
||||||
|
|
||||||
|
System.out.println("Calendar:");
|
||||||
|
System.out.println("\tAño: " + fechaCalendar.get(Calendar.YEAR));
|
||||||
|
System.out.println("\tMes: " + (1 +fechaCalendar.get(Calendar.MONTH)));
|
||||||
|
System.out.println("\tDía: " + fechaCalendar.get(Calendar.DAY_OF_MONTH));
|
||||||
|
System.out.println("\tHora: " + fechaCalendar.get(Calendar.HOUR));
|
||||||
|
System.out.println("\tMinutos: " + fechaCalendar.get(Calendar.MINUTE));
|
||||||
|
System.out.println("\tSegundos: " + fechaCalendar.get(Calendar.SECOND));
|
||||||
|
|
||||||
|
|
||||||
|
System.out.println("Operaciones Fechas:");
|
||||||
|
Calendar fechaActual = Calendar.getInstance();
|
||||||
|
fechaActual.add(Calendar.DAY_OF_MONTH, 3);
|
||||||
|
System.out.println("\tSuma 3 días: " + fechaActual.getTime());
|
||||||
|
fechaActual.add(Calendar.WEEK_OF_MONTH, -2);
|
||||||
|
System.out.println("\tResta 2 semanas: " + fechaActual.getTime());
|
||||||
|
fechaActual.add(Calendar.DAY_OF_MONTH, 300);
|
||||||
|
System.out.println("\tSuma 300 días: " + fechaActual.getTime());
|
||||||
|
fechaActual.add(Calendar.YEAR, 4);
|
||||||
|
System.out.println("\tSuma 4 años: " + fechaActual.getTime());
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
Calendar horaItalia = Calendar.getInstance(TimeZone.getTimeZone("Europe/Rome"));
|
||||||
|
Calendar horaWashington = Calendar.getInstance(TimeZone.getTimeZone("America/New_York"));
|
||||||
|
|
||||||
|
System.out.println("Hora en Italia: " + horaItalia.get(Calendar.HOUR_OF_DAY));
|
||||||
|
System.out.println("Hora en Washington: " + horaWashington.get(Calendar.HOUR_OF_DAY));
|
||||||
|
|
||||||
|
System.out.println("Diferencia horaria: " + (horaItalia.get(Calendar.HOUR_OF_DAY)-horaWashington.get(Calendar.HOUR_OF_DAY)) + " horas");
|
||||||
|
}
|
||||||
|
}
|
||||||
27
src/capitulo07/bloque03/ejercicio01/PeticionNumeros.java
Normal file
27
src/capitulo07/bloque03/ejercicio01/PeticionNumeros.java
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
package capitulo07.bloque03.ejercicio01;
|
||||||
|
|
||||||
|
import capitulo07.bloque03.ejercicio01.exeptions.OddException;
|
||||||
|
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class PeticionNumeros {
|
||||||
|
static Scanner sc = new Scanner(System.in);
|
||||||
|
public static int pideNumeroPar() throws OddException {
|
||||||
|
System.out.print("Escriba un número par: ");
|
||||||
|
int num = sc.nextInt();
|
||||||
|
if (num % 2 != 0) throw new OddException("El número dado es impar.");
|
||||||
|
return num;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int num = 0;
|
||||||
|
do {
|
||||||
|
try {
|
||||||
|
num = pideNumeroPar();
|
||||||
|
} catch (OddException e) {
|
||||||
|
System.err.println("El número dado es impar por lo que ha provocado la siguiente Exception: ");
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
} while (num != 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package capitulo07.bloque03.ejercicio01.exeptions;
|
||||||
|
|
||||||
|
public class OddException extends Exception{
|
||||||
|
public OddException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
50
src/capitulo07/bloque03/ejercicio02/Main.java
Normal file
50
src/capitulo07/bloque03/ejercicio02/Main.java
Normal file
@@ -0,0 +1,50 @@
|
|||||||
|
package capitulo07.bloque03.ejercicio02;
|
||||||
|
|
||||||
|
import capitulo07.bloque03.ejercicio02.exceptions.StringContienePalabraProhibidaException;
|
||||||
|
import capitulo07.bloque03.ejercicio02.exceptions.StringEnBlancoException;
|
||||||
|
import capitulo07.bloque03.ejercicio02.exceptions.StringMenosTresPalabrasException;
|
||||||
|
import capitulo07.bloque03.ejercicio02.exceptions.StringSinPalabraRequeridaException;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
|
||||||
|
static Scanner sc = new Scanner(System.in);
|
||||||
|
|
||||||
|
public static String pedirFraseConPalabra(String palabra) throws StringEnBlancoException, StringMenosTresPalabrasException, StringSinPalabraRequeridaException, StringContienePalabraProhibidaException {
|
||||||
|
String textoIntroducido;
|
||||||
|
String[] palabrasProhibidas = new String[]{"tonto", "tonta", "idiota"};
|
||||||
|
|
||||||
|
System.out.print("Introduzca una frase con la palabra " + palabra + ": ");
|
||||||
|
textoIntroducido = sc.nextLine();
|
||||||
|
if (textoIntroducido.isBlank())
|
||||||
|
throw new StringEnBlancoException("La cadena de texto está vacía o sólo tiene espacios en Blanco");
|
||||||
|
|
||||||
|
int conteoEspacios = 0;
|
||||||
|
for (char c : textoIntroducido.trim().toCharArray()) {
|
||||||
|
if (c == ' ') conteoEspacios++;
|
||||||
|
}
|
||||||
|
if (conteoEspacios <= 1)
|
||||||
|
throw new StringMenosTresPalabrasException("La cadena de texto tiene menos de 3 palabras");
|
||||||
|
|
||||||
|
if (!textoIntroducido.toLowerCase().contains(palabra))
|
||||||
|
throw new StringSinPalabraRequeridaException("La cadena de texto no contiene la palabra requerida");
|
||||||
|
|
||||||
|
for (String str : palabrasProhibidas) {
|
||||||
|
if (textoIntroducido.toLowerCase().contains(str))
|
||||||
|
throw new StringContienePalabraProhibidaException("La cadena de texto contiene una palabra prohibida");
|
||||||
|
}
|
||||||
|
|
||||||
|
return textoIntroducido;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void main(String[] args) {
|
||||||
|
try {
|
||||||
|
String stringIntroducido = pedirFraseConPalabra("bombilla");
|
||||||
|
} catch (StringEnBlancoException | StringMenosTresPalabrasException | StringSinPalabraRequeridaException | StringContienePalabraProhibidaException e) {
|
||||||
|
System.err.println(e.getMessage());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package capitulo07.bloque03.ejercicio02.exceptions;
|
||||||
|
|
||||||
|
public class StringContienePalabraProhibidaException extends RuntimeException {
|
||||||
|
public StringContienePalabraProhibidaException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package capitulo07.bloque03.ejercicio02.exceptions;
|
||||||
|
|
||||||
|
public class StringEnBlancoException extends Exception {
|
||||||
|
public StringEnBlancoException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package capitulo07.bloque03.ejercicio02.exceptions;
|
||||||
|
|
||||||
|
public class StringMenosTresPalabrasException extends RuntimeException {
|
||||||
|
public StringMenosTresPalabrasException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,7 @@
|
|||||||
|
package capitulo07.bloque03.ejercicio02.exceptions;
|
||||||
|
|
||||||
|
public class StringSinPalabraRequeridaException extends RuntimeException {
|
||||||
|
public StringSinPalabraRequeridaException(String message) {
|
||||||
|
super(message);
|
||||||
|
}
|
||||||
|
}
|
||||||
37
src/capitulo07/bloque04/AvisosCalculo.java
Normal file
37
src/capitulo07/bloque04/AvisosCalculo.java
Normal file
@@ -0,0 +1,37 @@
|
|||||||
|
package capitulo07.bloque04;
|
||||||
|
|
||||||
|
import capitulo07.bloque04.listener.Calculadora;
|
||||||
|
import capitulo07.bloque04.listener.OperacionEvent;
|
||||||
|
import capitulo07.bloque04.listener.OperacionesListener;
|
||||||
|
|
||||||
|
public class AvisosCalculo implements OperacionesListener {
|
||||||
|
|
||||||
|
public AvisosCalculo() {
|
||||||
|
Calculadora.addOperationsListener(this);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void sumaMayor1000(OperacionEvent event) {
|
||||||
|
System.out.println("La suma ha sobrepasado 1000 con el valor " + event.getResultado());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void multiplicacionMayor1000(OperacionEvent event) {
|
||||||
|
System.out.println("La multiplicación ha sobrepasado 1000 con el valor " + event.getResultado());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void restaNegativa(OperacionEvent event) {
|
||||||
|
System.out.println("El resultado de la resta es negativo: " + event.getResultado());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void divisor0(OperacionEvent event) {
|
||||||
|
System.out.println("No es posible dividir por 0");
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void raizNegativa(OperacionEvent event) {
|
||||||
|
System.out.println("No se puede calcular la raiz cuadrada de un número negativo");
|
||||||
|
}
|
||||||
|
}
|
||||||
57
src/capitulo07/bloque04/Main.java
Normal file
57
src/capitulo07/bloque04/Main.java
Normal file
@@ -0,0 +1,57 @@
|
|||||||
|
package capitulo07.bloque04;
|
||||||
|
|
||||||
|
|
||||||
|
import capitulo07.bloque04.listener.Calculadora;
|
||||||
|
|
||||||
|
import static capitulo04.utils.Utils.solicitarFloatScannerInline;
|
||||||
|
import static capitulo04.utils.Utils.solicitarIntScannerInline;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int opcion = 0;
|
||||||
|
new AvisosCalculo();
|
||||||
|
|
||||||
|
do {
|
||||||
|
System.out.println("Calculadora (0 para salir):" +
|
||||||
|
"\n 1 - Suma" +
|
||||||
|
"\n 2 - Resta" +
|
||||||
|
"\n 3 - Multiplicación" +
|
||||||
|
"\n 4 - División" +
|
||||||
|
"\n 5 - Raiz Cuadrada");
|
||||||
|
opcion = solicitarIntScannerInline("> ");
|
||||||
|
|
||||||
|
float num1 = 0;
|
||||||
|
float num2 = 0;
|
||||||
|
|
||||||
|
switch (opcion) {
|
||||||
|
case 1:
|
||||||
|
num1 = solicitarFloatScannerInline("Introduzca el primer sumando: ");
|
||||||
|
num2 = solicitarFloatScannerInline("Introduzca el segundo sumando: ");
|
||||||
|
System.out.println("Resultado de la suma: " + Calculadora.suma(num1, num2));
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
num1 = solicitarFloatScannerInline("Introduzca el minuendo: ");
|
||||||
|
num2 = solicitarFloatScannerInline("Introduzca el sustraendo: ");
|
||||||
|
System.out.println("Resultado de la resta: " + Calculadora.resta(num1,num2));
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
num1 = solicitarFloatScannerInline("Introduzca el primer factor: ");
|
||||||
|
num2 = solicitarFloatScannerInline("Introduzca el segundo factor: ");
|
||||||
|
System.out.println("Resultado de la multiplicación: " + Calculadora.multiplica(num1,num2));
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
num1 = solicitarFloatScannerInline("Introduzca el dividendo: ");
|
||||||
|
num2 = solicitarFloatScannerInline("Introduzca el divisor: ");
|
||||||
|
System.out.println("Resultado de la división: " + Calculadora.divide(num1, num2));
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
num1 = solicitarFloatScannerInline("Introduzca el radicando: ");
|
||||||
|
System.out.println("Resultado de la raiz cuadrada: " + Calculadora.hazRaizCuadrada(num1));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} while (opcion != 0);
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
87
src/capitulo07/bloque04/listener/Calculadora.java
Normal file
87
src/capitulo07/bloque04/listener/Calculadora.java
Normal file
@@ -0,0 +1,87 @@
|
|||||||
|
package capitulo07.bloque04.listener;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class Calculadora {
|
||||||
|
static List<OperacionesListener> listeners = new ArrayList<OperacionesListener>();
|
||||||
|
|
||||||
|
public static void addOperationsListener(OperacionesListener l) {
|
||||||
|
listeners.add(l);
|
||||||
|
}
|
||||||
|
public static void removeOperationsListener(OperacionesListener l) {
|
||||||
|
listeners.remove(l);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void fireSumaMayor1000(float resultado) {
|
||||||
|
for (OperacionesListener opl : listeners) {
|
||||||
|
opl.sumaMayor1000(new OperacionEvent(resultado));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void fireMultiplicacionMayor1000(float resultado) {
|
||||||
|
for (OperacionesListener opl : listeners) {
|
||||||
|
opl.multiplicacionMayor1000(new OperacionEvent(resultado));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void fireRestaNegativa(float resultado) {
|
||||||
|
for (OperacionesListener opl : listeners) {
|
||||||
|
opl.restaNegativa(new OperacionEvent(resultado));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void fireDivision0(float resultado) {
|
||||||
|
for (OperacionesListener opl : listeners) {
|
||||||
|
opl.divisor0(new OperacionEvent(resultado));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void fireRaizNegativa(float resultado) {
|
||||||
|
for (OperacionesListener opl : listeners) {
|
||||||
|
opl.raizNegativa(new OperacionEvent(resultado));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
public static float suma(float num1, float num2) {
|
||||||
|
float resultado = num1 + num2;
|
||||||
|
if (resultado > 1000) fireSumaMayor1000(resultado);
|
||||||
|
return resultado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float multiplica(float num1, float num2) {
|
||||||
|
float resultado = num1 * num2;
|
||||||
|
if (resultado > 1000) fireMultiplicacionMayor1000(resultado);
|
||||||
|
return resultado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float resta(float num1, float num2) {
|
||||||
|
float resultado = num1 - num2;
|
||||||
|
if (resultado < 0) fireRestaNegativa(resultado);
|
||||||
|
return resultado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float divide(float num1, float num2) {
|
||||||
|
if (num2 == 0) {
|
||||||
|
fireDivision0(num2);
|
||||||
|
return num2;
|
||||||
|
} else {
|
||||||
|
return num1 / num2;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static float hazRaizCuadrada(float num) {
|
||||||
|
if (num < 0) {
|
||||||
|
fireRaizNegativa(num);
|
||||||
|
return num;
|
||||||
|
} else {
|
||||||
|
return (float) Math.sqrt(num);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
24
src/capitulo07/bloque04/listener/OperacionEvent.java
Normal file
24
src/capitulo07/bloque04/listener/OperacionEvent.java
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
package capitulo07.bloque04.listener;
|
||||||
|
|
||||||
|
public class OperacionEvent {
|
||||||
|
private float resultado;
|
||||||
|
|
||||||
|
public OperacionEvent(float resultado) {
|
||||||
|
|
||||||
|
this.resultado = resultado;
|
||||||
|
}
|
||||||
|
public float getResultado() {
|
||||||
|
return resultado;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setResultado(float resultado) {
|
||||||
|
this.resultado = resultado;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "OperacionEvent{" +
|
||||||
|
"resultado=" + resultado +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
14
src/capitulo07/bloque04/listener/OperacionesListener.java
Normal file
14
src/capitulo07/bloque04/listener/OperacionesListener.java
Normal file
@@ -0,0 +1,14 @@
|
|||||||
|
package capitulo07.bloque04.listener;
|
||||||
|
|
||||||
|
public interface OperacionesListener {
|
||||||
|
|
||||||
|
public void sumaMayor1000(OperacionEvent event);
|
||||||
|
|
||||||
|
public void multiplicacionMayor1000(OperacionEvent event);
|
||||||
|
|
||||||
|
public void restaNegativa(OperacionEvent event);
|
||||||
|
|
||||||
|
public void divisor0(OperacionEvent event);
|
||||||
|
|
||||||
|
public void raizNegativa(OperacionEvent event);
|
||||||
|
}
|
||||||
17
src/capitulo07/bloque05/ConteoRegresivo.java
Normal file
17
src/capitulo07/bloque05/ConteoRegresivo.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package capitulo07.bloque05;
|
||||||
|
|
||||||
|
public class ConteoRegresivo {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int n = 10;
|
||||||
|
System.out.println("El conteo regresivo de " + n + " es:");
|
||||||
|
contar(n);
|
||||||
|
}
|
||||||
|
public static void contar(int n) {
|
||||||
|
if (n > 0) {
|
||||||
|
System.out.print(n + " ");
|
||||||
|
contar(n - 1);
|
||||||
|
} else {
|
||||||
|
System.out.println("Fin del conteo regresivo");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
17
src/capitulo07/bloque05/Fibonacci.java
Normal file
17
src/capitulo07/bloque05/Fibonacci.java
Normal file
@@ -0,0 +1,17 @@
|
|||||||
|
package capitulo07.bloque05;
|
||||||
|
|
||||||
|
public class Fibonacci {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int n = 10;
|
||||||
|
System.out.println("El numero " + n + " de la secuencia de Fibonacci es el " + fibonacci(n));
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int fibonacci(int n) {
|
||||||
|
if (n == 0) {
|
||||||
|
return 0;
|
||||||
|
} else if (n == 1) {
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
return fibonacci(n - 1) + fibonacci(n - 2);
|
||||||
|
}
|
||||||
|
}
|
||||||
16
src/capitulo07/bloque05/PotenciaRecursiva.java
Normal file
16
src/capitulo07/bloque05/PotenciaRecursiva.java
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
package capitulo07.bloque05;
|
||||||
|
|
||||||
|
public class PotenciaRecursiva {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int base = 2;
|
||||||
|
int exponente = 10;
|
||||||
|
System.out.println(base + " elevado a " + exponente + " es igual a " + potencia(base, exponente));
|
||||||
|
}
|
||||||
|
public static int potencia(int base, int exponente) {
|
||||||
|
if (exponente == 0) {
|
||||||
|
return 1;
|
||||||
|
} else {
|
||||||
|
return base * potencia(base, exponente - 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
389
src/capitulo08/bloque01y02/Main.java
Normal file
389
src/capitulo08/bloque01y02/Main.java
Normal file
@@ -0,0 +1,389 @@
|
|||||||
|
package capitulo08.bloque01y02;
|
||||||
|
|
||||||
|
import capitulo08.bloque01y02.operaciones.Delete;
|
||||||
|
import capitulo08.bloque01y02.operaciones.Insert;
|
||||||
|
import capitulo08.bloque01y02.operaciones.Select;
|
||||||
|
import capitulo08.bloque01y02.operaciones.Update;
|
||||||
|
|
||||||
|
import java.sql.*;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
import static capitulo04.utils.Utils.solicitarIntScannerInline;
|
||||||
|
import static capitulo04.utils.Utils.solicitarStringScannerInline;
|
||||||
|
|
||||||
|
public class Main {
|
||||||
|
public static void main(String[] args) {
|
||||||
|
int opcion = 0;
|
||||||
|
Connection conn = null;
|
||||||
|
try {
|
||||||
|
conn = getConexion();
|
||||||
|
} catch (SQLException | ClassNotFoundException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
do {
|
||||||
|
System.out.println(
|
||||||
|
"\n¿Qué quieres administrar?:\n" +
|
||||||
|
"0 - Salir del programa\n" +
|
||||||
|
"1 - Coches\n" +
|
||||||
|
"2 - Fabricantes\n" +
|
||||||
|
"3 - Concesionarios\n" +
|
||||||
|
"4 - Clientes\n" +
|
||||||
|
"5 - Ventas");
|
||||||
|
opcion = solicitarIntScannerInline("> ");
|
||||||
|
|
||||||
|
switch (opcion) {
|
||||||
|
case 1:
|
||||||
|
menuCoches(conn);
|
||||||
|
break;
|
||||||
|
case 2:
|
||||||
|
menuFabricantes(conn);
|
||||||
|
break;
|
||||||
|
case 3:
|
||||||
|
menuConcesionarios(conn);
|
||||||
|
break;
|
||||||
|
case 4:
|
||||||
|
menuClientes(conn);
|
||||||
|
break;
|
||||||
|
case 5:
|
||||||
|
menuVentas(conn);
|
||||||
|
break;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
} while (opcion != 0);
|
||||||
|
|
||||||
|
try {
|
||||||
|
conn.close();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Connection getConexion() throws ClassNotFoundException, SQLException {
|
||||||
|
//Class.forName(PropiedadesBBDD.getMySQLDriver());
|
||||||
|
return DriverManager.getConnection(PropiedadesBBDD.getMySQLConnectionString());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private static void menuFabricantes(Connection conn) {
|
||||||
|
int opcion = 0;
|
||||||
|
do {
|
||||||
|
System.out.println(
|
||||||
|
"\nSeleccione una operación:\n" +
|
||||||
|
"0 - Volver atrás\n" +
|
||||||
|
"1 - Mostrar todos los fabricantes\n" +
|
||||||
|
"2 - Añadir un fabricante\n" +
|
||||||
|
"3 - Actualizar un fabricante\n" +
|
||||||
|
"4 - Eliminar un fabricante");
|
||||||
|
opcion = solicitarIntScannerInline("> ");
|
||||||
|
|
||||||
|
try {
|
||||||
|
switch (opcion) {
|
||||||
|
case 1: {
|
||||||
|
Select.mostrarTabla(conn, "fabricante");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
Insert.addFabricante(conn,
|
||||||
|
solicitarStringScannerInline("Introduzca el CIF: "),
|
||||||
|
solicitarStringScannerInline("Introduzca el Nombre: "));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
int id;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID del fabricante: ");
|
||||||
|
} while (!Select.isIdValid(conn, "fabricante", id));
|
||||||
|
String cifNuevo = solicitarStringScannerInline("Introduzca el nuevo CIF (en blanco para no cambiar): ");
|
||||||
|
String nombreNuevo = solicitarStringScannerInline("Introduzca el nuevo Nombre (en blanco para no cambiar): ");
|
||||||
|
Update.actualizarFabricante(conn, id, cifNuevo, nombreNuevo);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: {
|
||||||
|
int id;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID del fabricante: ");
|
||||||
|
} while (!Select.isIdValid(conn, "fabricante", id));
|
||||||
|
Delete.eliminarRegistro(conn, "fabricante", id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (opcion != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void menuCoches(Connection conn) {
|
||||||
|
int opcion = 0;
|
||||||
|
do {
|
||||||
|
System.out.println(
|
||||||
|
"\nSeleccione una operación:\n" +
|
||||||
|
"0 - Volver atrás\n" +
|
||||||
|
"1 - Mostrar todos los coches\n" +
|
||||||
|
"2 - Añadir un coche\n" +
|
||||||
|
"3 - Actualizar un coche\n" +
|
||||||
|
"4 - Eliminar un coche");
|
||||||
|
opcion = solicitarIntScannerInline("> ");
|
||||||
|
|
||||||
|
try {
|
||||||
|
switch (opcion) {
|
||||||
|
case 1: {
|
||||||
|
Select.mostrarTabla(conn, "coche");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
Insert.addCoche(conn,
|
||||||
|
solicitarIntScannerInline("Introduzca el ID del fabricante: "),
|
||||||
|
solicitarStringScannerInline("Introduzca número del bastidor: "),
|
||||||
|
solicitarStringScannerInline("Introduzca el modelo: "),
|
||||||
|
solicitarStringScannerInline("Introduzca el color: "));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
int id;
|
||||||
|
int idFabricante;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID del coche: ");
|
||||||
|
} while (!Select.isIdValid(conn, "coche", id));
|
||||||
|
do {
|
||||||
|
idFabricante = solicitarIntScannerInline("Introduzca el nuevo id del Fabricante (0 para no cambiar): ");
|
||||||
|
} while (!Select.isIdValid(conn, "fabricante", idFabricante) && !(idFabricante == 0));
|
||||||
|
String numBastidor = solicitarStringScannerInline("Introduzca el nuevo número de bastidor (en blanco para no cambiar): ");
|
||||||
|
String modelo = solicitarStringScannerInline("Introduzca el nuevo modelo (en blanco para no cambiar): ");
|
||||||
|
String color = solicitarStringScannerInline("Introduzca el nuevo color (en blanco para no cambiar): ");
|
||||||
|
Update.actualizarCoche(conn, id, idFabricante, numBastidor, modelo, color);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: {
|
||||||
|
int id;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID del coche: ");
|
||||||
|
} while (!Select.isIdValid(conn, "coche", id));
|
||||||
|
Delete.eliminarRegistro(conn, "coche", id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (opcion != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void menuConcesionarios(Connection conn) {
|
||||||
|
int opcion = 0;
|
||||||
|
do {
|
||||||
|
System.out.println(
|
||||||
|
"\nSeleccione una operación:\n" +
|
||||||
|
"0 - Volver atrás\n" +
|
||||||
|
"1 - Mostrar todos los concesionarios\n" +
|
||||||
|
"2 - Añadir un concesionario\n" +
|
||||||
|
"3 - Actualizar un concesionario\n" +
|
||||||
|
"4 - Eliminar un concesionario");
|
||||||
|
opcion = solicitarIntScannerInline("> ");
|
||||||
|
|
||||||
|
try {
|
||||||
|
switch (opcion) {
|
||||||
|
case 1: {
|
||||||
|
Select.mostrarTabla(conn, "concesionario");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
Insert.addConcesionario(conn,
|
||||||
|
solicitarStringScannerInline("Introduzca el CIF: "),
|
||||||
|
solicitarStringScannerInline("Introduzca el Nombre: "),
|
||||||
|
solicitarStringScannerInline("Introduzca la Localidad: "));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
int id;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID del concesionario: ");
|
||||||
|
} while (!Select.isIdValid(conn, "concesionario", id));
|
||||||
|
String cifNuevo = solicitarStringScannerInline("Introduzca el nuevo CIF (en blanco para no cambiar): ");
|
||||||
|
String nombreNuevo = solicitarStringScannerInline("Introduzca el nuevo Nombre (en blanco para no cambiar): ");
|
||||||
|
String localidadNueva = solicitarStringScannerInline("Introduzca la nueva Localidad (en blanco para no cambiar): ");
|
||||||
|
Update.actualizarConcesionario(conn, id, cifNuevo, nombreNuevo, localidadNueva);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: {
|
||||||
|
int id;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID del concesionario: ");
|
||||||
|
} while (!Select.isIdValid(conn, "concesionario", id));
|
||||||
|
Delete.eliminarRegistro(conn, "concesionario", id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (opcion != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void menuClientes(Connection conn) {
|
||||||
|
int opcion = 0;
|
||||||
|
do {
|
||||||
|
System.out.println(
|
||||||
|
"\nSeleccione una operación:\n" +
|
||||||
|
"0 - Volver atrás\n" +
|
||||||
|
"1 - Mostrar todos los clientes\n" +
|
||||||
|
"2 - Añadir un cliente\n" +
|
||||||
|
"3 - Actualizar un cliente\n" +
|
||||||
|
"4 - Eliminar un cliente");
|
||||||
|
opcion = solicitarIntScannerInline("> ");
|
||||||
|
|
||||||
|
try {
|
||||||
|
switch (opcion) {
|
||||||
|
case 1: {
|
||||||
|
Select.mostrarTabla(conn, "cliente");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
Insert.addCliente(conn,
|
||||||
|
solicitarStringScannerInline("Introduzca el Nombre: "),
|
||||||
|
solicitarStringScannerInline("Introduzca los Apellidos: "),
|
||||||
|
solicitarStringScannerInline("Introduzca la Localidad: "),
|
||||||
|
solicitarStringScannerInline("Introduzca el DNI/NIE: "),
|
||||||
|
solicitarFechaInline("fecha de nacimiento", "dd/MM/yyyy"),
|
||||||
|
solicitarIntScannerInline("Introduzca el estado (0 -> NO o 1 -> SÍ): "));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
int id;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID del cliente: ");
|
||||||
|
} while (!Select.isIdValid(conn, "cliente", id));
|
||||||
|
|
||||||
|
String nuevoNombre = solicitarStringScannerInline("Introduzca el nuevo Nombre (en blanco para no cambiar): ");
|
||||||
|
String nuevosApellidos = solicitarStringScannerInline("Introduzca los Apellidos (en blanco para no cambiar): ");
|
||||||
|
String nuevaLocalidad = solicitarStringScannerInline("Introduzca la Localidad (en blanco para no cambiar): ");
|
||||||
|
String nuevoDNI = solicitarStringScannerInline("Introduzca el DNI/NIE (en blanco para no cambiar): ");
|
||||||
|
Date nuevaFecha = solicitarFechaInline("fecha de nacimiento", "dd/MM/yyyy");
|
||||||
|
int nuevoEstado = solicitarIntScannerInline("Introduzca el estado (0 -> NO o 1 -> SÍ): ");
|
||||||
|
|
||||||
|
Update.actualizarCliente(conn, id, nuevoNombre, nuevosApellidos, nuevaLocalidad, nuevoDNI, nuevaFecha, nuevoEstado);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: {
|
||||||
|
int id;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID del cliente: ");
|
||||||
|
} while (!Select.isIdValid(conn, "cliente", id));
|
||||||
|
Delete.eliminarRegistro(conn, "cliente", id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (opcion != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void menuVentas(Connection conn) {
|
||||||
|
int opcion = 0;
|
||||||
|
do {
|
||||||
|
System.out.println(
|
||||||
|
"\nSeleccione una operación:\n" +
|
||||||
|
"0 - Volver atrás\n" +
|
||||||
|
"1 - Mostrar todas las ventas\n" +
|
||||||
|
"2 - Añadir una venta\n" +
|
||||||
|
"3 - Actualizar una venta\n" +
|
||||||
|
"4 - Eliminar una venta");
|
||||||
|
opcion = solicitarIntScannerInline("> ");
|
||||||
|
|
||||||
|
try {
|
||||||
|
switch (opcion) {
|
||||||
|
case 1: {
|
||||||
|
Select.mostrarTabla(conn, "venta");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 2: {
|
||||||
|
int idCliente;
|
||||||
|
int idConcesionario;
|
||||||
|
int idCoche;
|
||||||
|
do {
|
||||||
|
idCliente = solicitarIntScannerInline("Introduzca el ID del Cliente: ");
|
||||||
|
} while (!Select.isIdValid(conn, "cliente", idCliente));
|
||||||
|
do {
|
||||||
|
idConcesionario = solicitarIntScannerInline("Introduzca el ID del Concesionario: ");
|
||||||
|
} while (!Select.isIdValid(conn, "concesionario", idConcesionario));
|
||||||
|
do {
|
||||||
|
idCoche = solicitarIntScannerInline("Introduzca el ID del Coche: ");
|
||||||
|
} while (!Select.isIdValid(conn, "coche", idCoche));
|
||||||
|
|
||||||
|
Insert.addVenta(conn,
|
||||||
|
idCliente,
|
||||||
|
idConcesionario,
|
||||||
|
idCoche,
|
||||||
|
solicitarFechaInline("fecha de venta", "dd/MM/yyyy"),
|
||||||
|
solicitarIntScannerInline("Introduzca el precio de Venta: "));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 3: {
|
||||||
|
int id;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID de la venta: ");
|
||||||
|
} while (!Select.isIdValid(conn, "venta", id));
|
||||||
|
|
||||||
|
int nuevoIdCliente;
|
||||||
|
int nuevoIdConcesionario;
|
||||||
|
int nuevoIdCoche;
|
||||||
|
do {
|
||||||
|
nuevoIdCliente = solicitarIntScannerInline("Introduzca el nuevo ID del Cliente (0 para no cambiar): ");
|
||||||
|
} while (!(nuevoIdCliente == 0 || Select.isIdValid(conn, "cliente", nuevoIdCliente)));
|
||||||
|
do {
|
||||||
|
nuevoIdConcesionario = solicitarIntScannerInline("Introduzca el nuevo ID del Concesionario (0 para no cambiar): ");
|
||||||
|
} while (!(nuevoIdConcesionario == 0 || Select.isIdValid(conn, "concesionario", nuevoIdConcesionario)));
|
||||||
|
do {
|
||||||
|
nuevoIdCoche = solicitarIntScannerInline("Introduzca el nuevo ID del Coche (0 para no cambiar): ");
|
||||||
|
} while (!(nuevoIdCoche == 0 || Select.isIdValid(conn, "coche", nuevoIdCoche)));
|
||||||
|
|
||||||
|
Date nuevaFecha = solicitarFechaInline("fecha de nacimiento", "dd/MM/yyyy");
|
||||||
|
int nuevoPrecio = solicitarIntScannerInline("Introduzca el nuevo precio de Venta (0 para no cambiar): ");
|
||||||
|
|
||||||
|
Update.actualizarVenta(conn, id, nuevoIdCliente, nuevoIdConcesionario, nuevoIdCoche, nuevaFecha, nuevoPrecio);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case 4: {
|
||||||
|
int id;
|
||||||
|
do {
|
||||||
|
id = solicitarIntScannerInline("Introduzca el ID de la venta: ");
|
||||||
|
} while (!Select.isIdValid(conn, "venta", id));
|
||||||
|
Delete.eliminarRegistro(conn, "venta", id);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
|
||||||
|
} while (opcion != 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static Date solicitarFechaInline(String solicitud, String formato) {
|
||||||
|
Scanner sc = new Scanner(System.in);
|
||||||
|
SimpleDateFormat formatoFecha = new SimpleDateFormat(formato);
|
||||||
|
|
||||||
|
while (true) {
|
||||||
|
System.out.print("Introduzca una " + solicitud + " con este formato ( " + formato + " ) > ");
|
||||||
|
String fechaIntroducida = sc.nextLine();
|
||||||
|
|
||||||
|
try {
|
||||||
|
return formatoFecha.parse(fechaIntroducida);
|
||||||
|
} catch (ParseException e) {
|
||||||
|
System.out.println("\nVuelva a introducir la fecha, en el formato correcto: " + formato);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
44
src/capitulo08/bloque01y02/PropiedadesBBDD.java
Normal file
44
src/capitulo08/bloque01y02/PropiedadesBBDD.java
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
package capitulo08.bloque01y02;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
public class PropiedadesBBDD {
|
||||||
|
|
||||||
|
private static Properties propiedades;
|
||||||
|
|
||||||
|
private static Properties getPropiedades() {
|
||||||
|
if (propiedades == null) {
|
||||||
|
propiedades = new Properties();
|
||||||
|
|
||||||
|
try {
|
||||||
|
File file = new File("./out/production/Ejercicios/capitulo08/bloque01y02/mysql.properties");
|
||||||
|
propiedades.load(new FileReader(file));
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return propiedades;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getMySQLConnectionString() {
|
||||||
|
String host = getProperty("MYSQL_HOST");
|
||||||
|
String schema = getProperty("MYSQL_SCHEMA_NAME");
|
||||||
|
String properties = getProperty("MYSQL_PROPERTIES");
|
||||||
|
String user = getProperty("MYSQL_USER");
|
||||||
|
String password = getProperty("MYSQL_PASSWORD");
|
||||||
|
|
||||||
|
return "jdbc:mysql://" + user + ":" + password + "@" + host + "/" + schema + properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getMySQLDriver() {
|
||||||
|
return getProperty("MYSQL_DRIVER_CLASS");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getProperty(String nombrePropiedad) {
|
||||||
|
return getPropiedades().getProperty(nombrePropiedad);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
6
src/capitulo08/bloque01y02/mysql.properties
Normal file
6
src/capitulo08/bloque01y02/mysql.properties
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
MYSQL_DRIVER_CLASS=com.mysql.cj.jdbc.Driver
|
||||||
|
MYSQL_USER=root
|
||||||
|
MYSQL_PASSWORD=1234
|
||||||
|
MYSQL_HOST=127.0.0.1:3310
|
||||||
|
MYSQL_SCHEMA_NAME=tutorialjavacoches
|
||||||
|
MYSQL_PROPERTIES=?autoReconnect=true&serverTimezone=Europe/Madrid&useSSL=False&allowPublicKeyRetrieval=TRUE
|
||||||
12
src/capitulo08/bloque01y02/operaciones/Delete.java
Normal file
12
src/capitulo08/bloque01y02/operaciones/Delete.java
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
package capitulo08.bloque01y02.operaciones;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
public class Delete {
|
||||||
|
public static int eliminarRegistro(Connection conn, String tabla, int id) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
return st.executeUpdate("delete from tutorialjavacoches." + tabla + " where id=" + id + ";");
|
||||||
|
}
|
||||||
|
}
|
||||||
46
src/capitulo08/bloque01y02/operaciones/Insert.java
Normal file
46
src/capitulo08/bloque01y02/operaciones/Insert.java
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
package capitulo08.bloque01y02.operaciones;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class Insert {
|
||||||
|
public static int addFabricante(Connection conn, String cif, String nombre) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
return st.executeUpdate("insert into tutorialjavacoches.fabricante (id, cif, nombre) values (" +
|
||||||
|
Select.getNextId(conn, "fabricante") + ",'" + cif + "','" + nombre + "');");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int addCoche(Connection conn, int idFabricante, String numBastidor, String modelo, String color) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
if (Select.isIdValid(conn, "fabricante", idFabricante)) {
|
||||||
|
return st.executeUpdate("insert into tutorialjavacoches.coche (id, idfabricante, bastidor, modelo, color) values (" +
|
||||||
|
Select.getNextId(conn, "coche") + "," + idFabricante + ",'" + numBastidor + "','" + modelo + "','" + color + "');");
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int addConcesionario(Connection conn, String cif, String nombre, String localidad) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
return st.executeUpdate("insert into tutorialjavacoches.concesionario (id, cif, nombre, localidad) values (" +
|
||||||
|
Select.getNextId(conn, "concesionario") + ",'" + cif + "','" + nombre + "','" + localidad + "');");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int addCliente(Connection conn, String nombre, String apellidos, String localidad, String dni, Date fechaNac, int activo) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
return st.executeUpdate("insert into tutorialjavacoches.cliente (id, nombre, apellidos, localidad, dniNie, fechaNac, activo) values (" +
|
||||||
|
Select.getNextId(conn, "cliente") + ",'" + nombre + "','" + apellidos + "','" + localidad + "','" + dni + "','" + sdf.format(fechaNac) + "'," + activo + ");");
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int addVenta(Connection conn, int idCliente, int idConcesionario, int idCoche, Date fecha, int precioVenta) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
return st.executeUpdate("insert into tutorialjavacoches.venta (id, idCliente, idConcesionario, idCoche, fecha, precioVenta) values (" +
|
||||||
|
Select.getNextId(conn, "venta") + "," + idCliente + "," + idConcesionario + "," + idCoche + ",'" + sdf.format(fecha) + "'," + precioVenta + ");");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
67
src/capitulo08/bloque01y02/operaciones/Select.java
Normal file
67
src/capitulo08/bloque01y02/operaciones/Select.java
Normal file
@@ -0,0 +1,67 @@
|
|||||||
|
package capitulo08.bloque01y02.operaciones;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.ResultSet;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
|
||||||
|
public class Select {
|
||||||
|
public static void mostrarTabla(Connection conn, String tabla) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
ResultSet rs = st.executeQuery("select * from tutorialjavacoches." + tabla + ";");
|
||||||
|
|
||||||
|
switch (tabla) {
|
||||||
|
case "fabricante": {
|
||||||
|
System.out.println("ID\t | CIF\t\t\t | Nombre");
|
||||||
|
while (rs.next()) {
|
||||||
|
System.out.println(rs.getInt(1) + "\t | " + rs.getString(2) + "\t | " + rs.getString(3));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "coche": {
|
||||||
|
System.out.println("ID\t | ID F\t | Nº Bastidor\t | Modelo\t | Color");
|
||||||
|
while (rs.next()) {
|
||||||
|
System.out.println(rs.getInt(1) + "\t | " + rs.getInt(2) + "\t | " + rs.getString(3) + "\t | " + rs.getString(4) + "\t | " + rs.getString(5));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "concesionario": {
|
||||||
|
System.out.println("ID\t | CIF\t\t\t | Nombre\t\t\t\t | Localidad");
|
||||||
|
while (rs.next()) {
|
||||||
|
System.out.println(rs.getInt(1) + "\t | " + rs.getString(2) + "\t | " + rs.getString(3) + "\t | " + rs.getString(4));
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case "cliente": {
|
||||||
|
System.out.println("ID\t | Nombre\t\t | Apellidos\t | Localidad\t | DNI\t | Fecha Nacimiento\t | Activo");
|
||||||
|
while (rs.next()) {
|
||||||
|
System.out.println(rs.getInt(1) + "\t | " + rs.getString(2) + "\t\t | " + rs.getString(3) + "\t | " + rs.getString(4) + "\t | " + rs.getString(5) + "\t | " + rs.getDate(6) + "\t | " + rs.getInt(7));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
case "venta": {
|
||||||
|
System.out.println("ID\t | ID Cliente\t | ID Concesionario\t | ID Coche\t | Fecha\t | Precio Venta");
|
||||||
|
while (rs.next()) {
|
||||||
|
System.out.println(rs.getInt(1) + "\t | " + rs.getInt(2) + "\t | " + rs.getInt(3) + "\t | " + rs.getInt(4) + "\t | " + rs.getDate(5) + "\t | " + rs.getInt(6));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int getNextId(Connection conn, String tabla) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
ResultSet rs = st.executeQuery("select max(id) from tutorialjavacoches." + tabla + ";");
|
||||||
|
rs.next();
|
||||||
|
return (rs.getInt(1) + 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isIdValid(Connection conn, String tabla, int id) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
ResultSet rs = st.executeQuery("select id from tutorialjavacoches." + tabla + " where id=" + id + ";");
|
||||||
|
if (rs.next()) {
|
||||||
|
return rs.getInt(1) == id;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
106
src/capitulo08/bloque01y02/operaciones/Update.java
Normal file
106
src/capitulo08/bloque01y02/operaciones/Update.java
Normal file
@@ -0,0 +1,106 @@
|
|||||||
|
package capitulo08.bloque01y02.operaciones;
|
||||||
|
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.SQLException;
|
||||||
|
import java.sql.Statement;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
import java.util.Objects;
|
||||||
|
|
||||||
|
public class Update {
|
||||||
|
public static void actualizarFabricante(Connection conn, int id, String cif, String nombre) throws SQLException {
|
||||||
|
if (!(Objects.equals(cif, "") || cif == null)) {
|
||||||
|
actualizarCampoString(conn, "fabricante", id, "cif", cif);
|
||||||
|
}
|
||||||
|
if (!(Objects.equals(nombre, "") || nombre == null)) {
|
||||||
|
actualizarCampoString(conn, "fabricante", id, "nombre", nombre);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void actualizarCoche(Connection conn, int id, int idFabricante, String numBastidor, String modelo, String color) throws SQLException {
|
||||||
|
if (idFabricante != 0) {
|
||||||
|
actualizarCampoInt(conn, "coche", id, "idfabricante", idFabricante);
|
||||||
|
}
|
||||||
|
if (!(Objects.equals(numBastidor, "") || numBastidor == null)) {
|
||||||
|
actualizarCampoString(conn, "coche", id, "bastidor", numBastidor);
|
||||||
|
}
|
||||||
|
if (!(Objects.equals(modelo, "") || modelo == null)) {
|
||||||
|
actualizarCampoString(conn, "coche", id, "modelo", modelo);
|
||||||
|
}
|
||||||
|
if (!(Objects.equals(color, "") || color == null)) {
|
||||||
|
actualizarCampoString(conn, "coche", id, "color", color);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void actualizarConcesionario(Connection conn, int id, String cif, String nombre, String localidad) throws SQLException {
|
||||||
|
if (!(Objects.equals(cif, "") || cif == null)) {
|
||||||
|
actualizarCampoString(conn, "concesionario", id, "cif", cif);
|
||||||
|
}
|
||||||
|
if (!(Objects.equals(nombre, "") || nombre == null)) {
|
||||||
|
actualizarCampoString(conn, "concesionario", id, "nombre", nombre);
|
||||||
|
}
|
||||||
|
if (!(Objects.equals(localidad, "") || localidad == null)) {
|
||||||
|
actualizarCampoString(conn, "concesionario", id, "localidad", localidad);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public static void actualizarCliente(Connection conn, int id, String nombre, String apellidos, String localidad, String dniNie, Date fechaNac, int activo) throws SQLException {
|
||||||
|
if (!(Objects.equals(nombre, "") || nombre == null)) {
|
||||||
|
actualizarCampoString(conn, "cliente", id, "nombre", nombre);
|
||||||
|
}
|
||||||
|
if (!(Objects.equals(apellidos, "") || apellidos == null)) {
|
||||||
|
actualizarCampoString(conn, "cliente", id, "apellidos", apellidos);
|
||||||
|
}
|
||||||
|
if (!(Objects.equals(localidad, "") || localidad == null)) {
|
||||||
|
actualizarCampoString(conn, "cliente", id, "localidad", localidad);
|
||||||
|
}
|
||||||
|
if (!(Objects.equals(dniNie, "") || dniNie == null)) {
|
||||||
|
actualizarCampoString(conn, "cliente", id, "dniNie", dniNie);
|
||||||
|
}
|
||||||
|
if (fechaNac != null) {
|
||||||
|
actualizarCampoDate(conn, "cliente", id, "fechaNac", fechaNac);
|
||||||
|
}
|
||||||
|
if ((activo == 0 || activo == 1)) {
|
||||||
|
actualizarCampoInt(conn, "cliente", id, "activo", activo);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void actualizarVenta(Connection conn, int id, int idCliente, int idConcesionario, int idCoche, Date fecha, int precioVenta) throws SQLException {
|
||||||
|
if (idCliente != 0) {
|
||||||
|
actualizarCampoInt(conn, "venta", id, "idCliente", idCliente);
|
||||||
|
}
|
||||||
|
if (idConcesionario != 0) {
|
||||||
|
actualizarCampoInt(conn, "venta", id, "idConcesionario", idConcesionario);
|
||||||
|
}
|
||||||
|
if (idCoche != 0) {
|
||||||
|
actualizarCampoInt(conn, "venta", id, "idCoche", idCoche);
|
||||||
|
}
|
||||||
|
if (fecha != null) {
|
||||||
|
actualizarCampoDate(conn, "venta", id, "fecha", fecha);
|
||||||
|
}
|
||||||
|
if (precioVenta != 0) {
|
||||||
|
actualizarCampoInt(conn, "venta", id, "precioVenta", precioVenta);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
private static int actualizarCampoString(Connection conn, String tabla, int id, String campo, String nuevoValor) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
return st.executeUpdate("update tutorialjavacoches." + tabla + " set " + campo + "='" + nuevoValor + "' where id=" + id + ";");
|
||||||
|
}
|
||||||
|
private static int actualizarCampoInt(Connection conn, String tabla, int id, String campo, int nuevoValor) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
return st.executeUpdate("update tutorialjavacoches." + tabla + " set " + campo + "=" + nuevoValor + " where id=" + id + ";");
|
||||||
|
}
|
||||||
|
private static int actualizarCampoDate(Connection conn, String tabla, int id, String campo, Date nuevoValor) throws SQLException {
|
||||||
|
Statement st = conn.createStatement();
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
||||||
|
return st.executeUpdate("update tutorialjavacoches." + tabla + " set " + campo + "='" + sdf.format(nuevoValor) + "' where id=" + id + ";");
|
||||||
|
}}
|
||||||
96
src/capitulo09/bloque01/controlador/ControladorCliente.java
Normal file
96
src/capitulo09/bloque01/controlador/ControladorCliente.java
Normal file
@@ -0,0 +1,96 @@
|
|||||||
|
package capitulo09.bloque01.controlador;
|
||||||
|
|
||||||
|
import capitulo09.bloque01.modelo.Cliente;
|
||||||
|
|
||||||
|
import java.sql.*;
|
||||||
|
|
||||||
|
public class ControladorCliente {
|
||||||
|
public static Cliente getPrimerCliente() {
|
||||||
|
return getClienteInterno(-1);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Cliente getUltimoCliente() {
|
||||||
|
return getClienteInterno(-2);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Cliente getCliente(int id) {
|
||||||
|
return getClienteInterno(id);
|
||||||
|
}
|
||||||
|
|
||||||
|
private static Cliente getClienteInterno(int id) {
|
||||||
|
Connection conn = PropiedadesBBDD.getConnection();
|
||||||
|
ResultSet res = null;
|
||||||
|
try {
|
||||||
|
PreparedStatement stId = conn.prepareStatement("select * from cliente where id = ? limit 1");
|
||||||
|
Statement stPrimeroUltimo = conn.createStatement();
|
||||||
|
|
||||||
|
if (id == -1) {
|
||||||
|
res = stPrimeroUltimo.executeQuery("select * from cliente order by id asc limit 1");
|
||||||
|
} else if (id == -2) {
|
||||||
|
res = stPrimeroUltimo.executeQuery("select * from cliente order by id desc limit 1");
|
||||||
|
} else {
|
||||||
|
stId.setInt(1, id);
|
||||||
|
res = stId.executeQuery();
|
||||||
|
}
|
||||||
|
|
||||||
|
while (res.next()) {
|
||||||
|
return new Cliente(res.getInt("id"), res.getString("nombre"), res.getString("apellidos"), res.getString("localidad"), res.getString("dniNie"), res.getDate("fechaNac"), res.getBoolean("activo"));
|
||||||
|
}
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int actualizarCliente(Cliente cliente) {
|
||||||
|
Connection conn = PropiedadesBBDD.getConnection();
|
||||||
|
try {
|
||||||
|
PreparedStatement ps = conn.prepareStatement("update cliente set nombre = ?, apellidos = ?, localidad = ?, dniNie = ?, fechaNac = ?, activo = ? where id = ?");
|
||||||
|
|
||||||
|
ps.setString(1, cliente.getNombre());
|
||||||
|
ps.setString(2, cliente.getApellidos());
|
||||||
|
ps.setString(3, cliente.getLocalidad());
|
||||||
|
ps.setString(4, cliente.getDniNie());
|
||||||
|
ps.setDate(5, new Date(cliente.getFechaNac().getTime()));
|
||||||
|
ps.setBoolean(6, cliente.isActivo());
|
||||||
|
ps.setInt(7, cliente.getId());
|
||||||
|
|
||||||
|
return ps.executeUpdate();
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int nuevoCliente(Cliente cliente) {
|
||||||
|
Connection conn = PropiedadesBBDD.getConnection();
|
||||||
|
try {
|
||||||
|
PreparedStatement ps = conn.prepareStatement("insert into cliente (id, nombre, apellidos, localidad, dniNie, fechaNac, activo) values (?, ?, ?, ?, ?, ?, ?)");
|
||||||
|
|
||||||
|
ps.setInt(1, cliente.getId());
|
||||||
|
ps.setString(2, cliente.getNombre());
|
||||||
|
ps.setString(3, cliente.getApellidos());
|
||||||
|
ps.setString(4, cliente.getLocalidad());
|
||||||
|
ps.setString(5, cliente.getDniNie());
|
||||||
|
ps.setDate(6, new Date(cliente.getFechaNac().getTime()));
|
||||||
|
ps.setBoolean(7, cliente.isActivo());
|
||||||
|
|
||||||
|
return ps.executeUpdate();
|
||||||
|
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static int eliminarCliente(int id) {
|
||||||
|
Connection conn = PropiedadesBBDD.getConnection();
|
||||||
|
try {
|
||||||
|
PreparedStatement ps = conn.prepareStatement("delete from cliente where id = ?");
|
||||||
|
ps.setInt(1, id);
|
||||||
|
return ps.executeUpdate();
|
||||||
|
} catch (SQLException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
58
src/capitulo09/bloque01/controlador/PropiedadesBBDD.java
Normal file
58
src/capitulo09/bloque01/controlador/PropiedadesBBDD.java
Normal file
@@ -0,0 +1,58 @@
|
|||||||
|
package capitulo09.bloque01.controlador;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileReader;
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.sql.Connection;
|
||||||
|
import java.sql.DriverManager;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
public class PropiedadesBBDD {
|
||||||
|
|
||||||
|
private static Properties propiedades;
|
||||||
|
private static Connection openConnection;
|
||||||
|
|
||||||
|
private static Properties getPropiedades() {
|
||||||
|
if (propiedades == null) {
|
||||||
|
propiedades = new Properties();
|
||||||
|
|
||||||
|
try {
|
||||||
|
File file = new File("./out/production/Ejercicios/capitulo09/bloque01/controlador/mysql.properties");
|
||||||
|
propiedades.load(new FileReader(file));
|
||||||
|
} catch (IOException e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return propiedades;
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getMySQLConnectionString() {
|
||||||
|
String host = getProperty("MYSQL_HOST");
|
||||||
|
String schema = getProperty("MYSQL_SCHEMA_NAME");
|
||||||
|
String properties = getProperty("MYSQL_PROPERTIES");
|
||||||
|
String user = getProperty("MYSQL_USER");
|
||||||
|
String password = getProperty("MYSQL_PASSWORD");
|
||||||
|
|
||||||
|
return "jdbc:mysql://" + user + ":" + password + "@" + host + "/" + schema + properties;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static Connection getConnection() {
|
||||||
|
if (openConnection == null) {
|
||||||
|
try {
|
||||||
|
openConnection = DriverManager.getConnection(getMySQLConnectionString());
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new RuntimeException(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return openConnection;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String getMySQLDriver() {
|
||||||
|
return getProperty("MYSQL_DRIVER_CLASS");
|
||||||
|
}
|
||||||
|
|
||||||
|
private static String getProperty(String nombrePropiedad) {
|
||||||
|
return getPropiedades().getProperty(nombrePropiedad);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
6
src/capitulo09/bloque01/controlador/mysql.properties
Normal file
6
src/capitulo09/bloque01/controlador/mysql.properties
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
MYSQL_DRIVER_CLASS=com.mysql.cj.jdbc.Driver
|
||||||
|
MYSQL_USER=root
|
||||||
|
MYSQL_PASSWORD=1234
|
||||||
|
MYSQL_HOST=127.0.0.1:3310
|
||||||
|
MYSQL_SCHEMA_NAME=tutorialjavacoches
|
||||||
|
MYSQL_PROPERTIES=?autoReconnect=true&serverTimezone=Europe/Madrid&useSSL=False&allowPublicKeyRetrieval=TRUE
|
||||||
95
src/capitulo09/bloque01/modelo/Cliente.java
Normal file
95
src/capitulo09/bloque01/modelo/Cliente.java
Normal file
@@ -0,0 +1,95 @@
|
|||||||
|
package capitulo09.bloque01.modelo;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class Cliente {
|
||||||
|
private int id;
|
||||||
|
private String nombre;
|
||||||
|
private String apellidos;
|
||||||
|
private String localidad;
|
||||||
|
private String dniNie;
|
||||||
|
private Date fechaNac;
|
||||||
|
private boolean activo;
|
||||||
|
|
||||||
|
public Cliente() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public Cliente(int id, String nombre, String apellidos, String localidad, String dniNie, Date fechaNac, boolean activo) {
|
||||||
|
this.id = id;
|
||||||
|
this.nombre = nombre;
|
||||||
|
this.apellidos = apellidos;
|
||||||
|
this.localidad = localidad;
|
||||||
|
this.dniNie = dniNie;
|
||||||
|
this.fechaNac = fechaNac;
|
||||||
|
this.activo = activo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public int getId() {
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(int id) {
|
||||||
|
this.id = id;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getNombre() {
|
||||||
|
return nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNombre(String nombre) {
|
||||||
|
this.nombre = nombre;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getApellidos() {
|
||||||
|
return apellidos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setApellidos(String apellidos) {
|
||||||
|
this.apellidos = apellidos;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getLocalidad() {
|
||||||
|
return localidad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setLocalidad(String localidad) {
|
||||||
|
this.localidad = localidad;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getDniNie() {
|
||||||
|
return dniNie;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setDniNie(String dniNie) {
|
||||||
|
this.dniNie = dniNie;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Date getFechaNac() {
|
||||||
|
return fechaNac;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFechaNac(Date fechaNac) {
|
||||||
|
this.fechaNac = fechaNac;
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isActivo() {
|
||||||
|
return activo;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setActivo(boolean activo) {
|
||||||
|
this.activo = activo;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "Cliente{" +
|
||||||
|
"id=" + id +
|
||||||
|
", nombre='" + nombre + '\'' +
|
||||||
|
", apellidos='" + apellidos + '\'' +
|
||||||
|
", localidad='" + localidad + '\'' +
|
||||||
|
", dniNie='" + dniNie + '\'' +
|
||||||
|
", fechaNac=" + fechaNac +
|
||||||
|
", activo=" + activo +
|
||||||
|
'}';
|
||||||
|
}
|
||||||
|
}
|
||||||
381
src/capitulo09/bloque01/vista/GestionCliente.java
Normal file
381
src/capitulo09/bloque01/vista/GestionCliente.java
Normal file
@@ -0,0 +1,381 @@
|
|||||||
|
package capitulo09.bloque01.vista;
|
||||||
|
|
||||||
|
import capitulo09.bloque01.controlador.ControladorCliente;
|
||||||
|
import capitulo09.bloque01.modelo.Cliente;
|
||||||
|
|
||||||
|
import java.awt.EventQueue;
|
||||||
|
|
||||||
|
import javax.swing.*;
|
||||||
|
import javax.swing.border.EmptyBorder;
|
||||||
|
import java.awt.BorderLayout;
|
||||||
|
import java.awt.Component;
|
||||||
|
import java.awt.Font;
|
||||||
|
import java.awt.GridBagLayout;
|
||||||
|
import java.awt.GridBagConstraints;
|
||||||
|
import java.awt.Insets;
|
||||||
|
import java.awt.event.ActionEvent;
|
||||||
|
import java.awt.event.ActionListener;
|
||||||
|
import java.text.ParseException;
|
||||||
|
import java.text.SimpleDateFormat;
|
||||||
|
import java.util.Date;
|
||||||
|
|
||||||
|
public class GestionCliente extends JFrame {
|
||||||
|
|
||||||
|
Cliente clienteActual;
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
private JPanel contentPane;
|
||||||
|
private JTextField jtfNombre;
|
||||||
|
private JTextField jtfApellidos;
|
||||||
|
private JTextField jtfLocalidad;
|
||||||
|
private JTextField jtfDniNie;
|
||||||
|
private JTextField jtfFechaNac;
|
||||||
|
private JTextField jtfId;
|
||||||
|
private JCheckBox checkBoxEstado;
|
||||||
|
|
||||||
|
private JButton btnPrimero;
|
||||||
|
private JButton btnAnterior;
|
||||||
|
private JButton btnSiguiente;
|
||||||
|
private JButton btnUltimo;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Launch the application.
|
||||||
|
*/
|
||||||
|
public static void main(String[] args) {
|
||||||
|
EventQueue.invokeLater(new Runnable() {
|
||||||
|
public void run() {
|
||||||
|
try {
|
||||||
|
GestionCliente frame = new GestionCliente();
|
||||||
|
frame.actualizarDatosEnPantalla(ControladorCliente.getPrimerCliente());
|
||||||
|
frame.setVisible(true);
|
||||||
|
} catch (Exception e) {
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void actualizarDatosEnPantalla(Cliente cliente) {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
|
||||||
|
jtfId.setText("" + cliente.getId());
|
||||||
|
jtfNombre.setText(cliente.getNombre());
|
||||||
|
jtfApellidos.setText(cliente.getApellidos());
|
||||||
|
jtfLocalidad.setText(cliente.getLocalidad());
|
||||||
|
jtfDniNie.setText(cliente.getDniNie());
|
||||||
|
jtfFechaNac.setText(sdf.format(cliente.getFechaNac()));
|
||||||
|
checkBoxEstado.setSelected(cliente.isActivo());
|
||||||
|
clienteActual = cliente;
|
||||||
|
|
||||||
|
if (cliente.getId() == ControladorCliente.getPrimerCliente().getId()) {
|
||||||
|
btnPrimero.setEnabled(false);
|
||||||
|
btnAnterior.setEnabled(false);
|
||||||
|
btnSiguiente.setEnabled(true);
|
||||||
|
btnUltimo.setEnabled(true);
|
||||||
|
} else if (cliente.getId() == ControladorCliente.getUltimoCliente().getId()) {
|
||||||
|
btnPrimero.setEnabled(true);
|
||||||
|
btnAnterior.setEnabled(true);
|
||||||
|
btnSiguiente.setEnabled(false);
|
||||||
|
btnUltimo.setEnabled(false);
|
||||||
|
} else {
|
||||||
|
btnPrimero.setEnabled(true);
|
||||||
|
btnAnterior.setEnabled(true);
|
||||||
|
btnSiguiente.setEnabled(true);
|
||||||
|
btnUltimo.setEnabled(true);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Create the frame.
|
||||||
|
*/
|
||||||
|
public GestionCliente() {
|
||||||
|
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
|
||||||
|
setBounds(100, 100, 500, 350);
|
||||||
|
contentPane = new JPanel();
|
||||||
|
contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
|
||||||
|
|
||||||
|
setContentPane(contentPane);
|
||||||
|
contentPane.setLayout(new BorderLayout(0, 0));
|
||||||
|
|
||||||
|
JPanel panel_1 = new JPanel();
|
||||||
|
contentPane.add(panel_1, BorderLayout.NORTH);
|
||||||
|
panel_1.setLayout(new BoxLayout(panel_1, BoxLayout.Y_AXIS));
|
||||||
|
|
||||||
|
JLabel lblTitulo = new JLabel("Gestión de Clientes");
|
||||||
|
lblTitulo.setFont(new Font("Verdana", Font.BOLD, 18));
|
||||||
|
lblTitulo.setAlignmentX(Component.CENTER_ALIGNMENT);
|
||||||
|
panel_1.add(lblTitulo);
|
||||||
|
|
||||||
|
JPanel panel = new JPanel();
|
||||||
|
panel_1.add(panel);
|
||||||
|
panel.setLayout(new BoxLayout(panel, BoxLayout.X_AXIS));
|
||||||
|
|
||||||
|
btnPrimero = new JButton("Primero");
|
||||||
|
btnPrimero.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
actualizarDatosEnPantalla(ControladorCliente.getPrimerCliente());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
btnPrimero.setToolTipText("Muestra en pantalla el primer cliente de la base de datos");
|
||||||
|
panel.add(btnPrimero);
|
||||||
|
|
||||||
|
btnAnterior = new JButton("Anterior");
|
||||||
|
btnAnterior.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
actualizarDatosEnPantalla(ControladorCliente.getCliente((clienteActual.getId() - 1)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
btnAnterior.setToolTipText("Muestra en pantalla el cliente anterior al actual");
|
||||||
|
panel.add(btnAnterior);
|
||||||
|
|
||||||
|
btnSiguiente = new JButton("Siguiente");
|
||||||
|
btnSiguiente.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
actualizarDatosEnPantalla(ControladorCliente.getCliente((clienteActual.getId() + 1)));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
btnSiguiente.setToolTipText("Muestra en pantalla el cliente siguiente al actual");
|
||||||
|
panel.add(btnSiguiente);
|
||||||
|
|
||||||
|
btnUltimo = new JButton("Último");
|
||||||
|
btnUltimo.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
actualizarDatosEnPantalla(ControladorCliente.getUltimoCliente());
|
||||||
|
}
|
||||||
|
});
|
||||||
|
btnUltimo.setToolTipText("Muestra en pantalla el ultimo cliente de la base de datos");
|
||||||
|
panel.add(btnUltimo);
|
||||||
|
|
||||||
|
JSeparator separator = new JSeparator();
|
||||||
|
panel_1.add(separator);
|
||||||
|
|
||||||
|
JPanel panel_2 = new JPanel();
|
||||||
|
contentPane.add(panel_2, BorderLayout.CENTER);
|
||||||
|
GridBagLayout gbl_panel_2 = new GridBagLayout();
|
||||||
|
gbl_panel_2.columnWidths = new int[]{0, 0, 0, 0};
|
||||||
|
gbl_panel_2.rowHeights = new int[]{0, 0, 0, 0, 0, 0, 0};
|
||||||
|
gbl_panel_2.columnWeights = new double[]{0.8, 0.5, 1.0, 0.8};
|
||||||
|
gbl_panel_2.rowWeights = new double[]{0.0, 0.0, 0.0, 0.0, 0.0, 0.0};
|
||||||
|
panel_2.setLayout(gbl_panel_2);
|
||||||
|
|
||||||
|
JLabel lblNewLabel = new JLabel("Id");
|
||||||
|
GridBagConstraints gbc_lblNewLabel = new GridBagConstraints();
|
||||||
|
gbc_lblNewLabel.anchor = GridBagConstraints.EAST;
|
||||||
|
gbc_lblNewLabel.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_lblNewLabel.gridx = 1;
|
||||||
|
gbc_lblNewLabel.gridy = 0;
|
||||||
|
panel_2.add(lblNewLabel, gbc_lblNewLabel);
|
||||||
|
|
||||||
|
jtfId = new JTextField();
|
||||||
|
jtfId.setEditable(false);
|
||||||
|
GridBagConstraints gbc_textField = new GridBagConstraints();
|
||||||
|
gbc_textField.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_textField.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
gbc_textField.gridx = 2;
|
||||||
|
gbc_textField.gridy = 0;
|
||||||
|
panel_2.add(jtfId, gbc_textField);
|
||||||
|
jtfId.setColumns(10);
|
||||||
|
|
||||||
|
JLabel lblNewLabel_1 = new JLabel("Nombre");
|
||||||
|
lblNewLabel_1.setHorizontalAlignment(SwingConstants.RIGHT);
|
||||||
|
GridBagConstraints gbc_lblNewLabel_1 = new GridBagConstraints();
|
||||||
|
gbc_lblNewLabel_1.anchor = GridBagConstraints.EAST;
|
||||||
|
gbc_lblNewLabel_1.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_lblNewLabel_1.gridx = 1;
|
||||||
|
gbc_lblNewLabel_1.gridy = 1;
|
||||||
|
panel_2.add(lblNewLabel_1, gbc_lblNewLabel_1);
|
||||||
|
|
||||||
|
jtfNombre = new JTextField();
|
||||||
|
GridBagConstraints gbc_textField_1 = new GridBagConstraints();
|
||||||
|
gbc_textField_1.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_textField_1.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
gbc_textField_1.gridx = 2;
|
||||||
|
gbc_textField_1.gridy = 1;
|
||||||
|
panel_2.add(jtfNombre, gbc_textField_1);
|
||||||
|
jtfNombre.setColumns(10);
|
||||||
|
|
||||||
|
JLabel lblNewLabel_2 = new JLabel("Apellidos");
|
||||||
|
GridBagConstraints gbc_lblNewLabel_2 = new GridBagConstraints();
|
||||||
|
gbc_lblNewLabel_2.anchor = GridBagConstraints.EAST;
|
||||||
|
gbc_lblNewLabel_2.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_lblNewLabel_2.gridx = 1;
|
||||||
|
gbc_lblNewLabel_2.gridy = 2;
|
||||||
|
panel_2.add(lblNewLabel_2, gbc_lblNewLabel_2);
|
||||||
|
|
||||||
|
jtfApellidos = new JTextField();
|
||||||
|
GridBagConstraints gbc_textField_2 = new GridBagConstraints();
|
||||||
|
gbc_textField_2.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_textField_2.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
gbc_textField_2.gridx = 2;
|
||||||
|
gbc_textField_2.gridy = 2;
|
||||||
|
panel_2.add(jtfApellidos, gbc_textField_2);
|
||||||
|
jtfApellidos.setColumns(10);
|
||||||
|
|
||||||
|
JLabel lblNewLabel_3 = new JLabel("Localidad");
|
||||||
|
GridBagConstraints gbc_lblNewLabel_3 = new GridBagConstraints();
|
||||||
|
gbc_lblNewLabel_3.anchor = GridBagConstraints.EAST;
|
||||||
|
gbc_lblNewLabel_3.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_lblNewLabel_3.gridx = 1;
|
||||||
|
gbc_lblNewLabel_3.gridy = 3;
|
||||||
|
panel_2.add(lblNewLabel_3, gbc_lblNewLabel_3);
|
||||||
|
|
||||||
|
jtfLocalidad = new JTextField();
|
||||||
|
GridBagConstraints gbc_textField_3 = new GridBagConstraints();
|
||||||
|
gbc_textField_3.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_textField_3.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
gbc_textField_3.gridx = 2;
|
||||||
|
gbc_textField_3.gridy = 3;
|
||||||
|
panel_2.add(jtfLocalidad, gbc_textField_3);
|
||||||
|
jtfLocalidad.setColumns(10);
|
||||||
|
|
||||||
|
JLabel lblNewLabel_4 = new JLabel("DNI/NIE");
|
||||||
|
GridBagConstraints gbc_lblNewLabel_4 = new GridBagConstraints();
|
||||||
|
gbc_lblNewLabel_4.anchor = GridBagConstraints.EAST;
|
||||||
|
gbc_lblNewLabel_4.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_lblNewLabel_4.gridx = 1;
|
||||||
|
gbc_lblNewLabel_4.gridy = 4;
|
||||||
|
panel_2.add(lblNewLabel_4, gbc_lblNewLabel_4);
|
||||||
|
|
||||||
|
jtfDniNie = new JTextField();
|
||||||
|
GridBagConstraints gbc_textField_4 = new GridBagConstraints();
|
||||||
|
gbc_textField_4.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_textField_4.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
gbc_textField_4.gridx = 2;
|
||||||
|
gbc_textField_4.gridy = 4;
|
||||||
|
panel_2.add(jtfDniNie, gbc_textField_4);
|
||||||
|
jtfDniNie.setColumns(10);
|
||||||
|
|
||||||
|
JLabel lblNewLabel_5 = new JLabel("Fecha de Nacimiento");
|
||||||
|
GridBagConstraints gbc_lblNewLabel_5 = new GridBagConstraints();
|
||||||
|
gbc_lblNewLabel_5.anchor = GridBagConstraints.EAST;
|
||||||
|
gbc_lblNewLabel_5.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_lblNewLabel_5.gridx = 1;
|
||||||
|
gbc_lblNewLabel_5.gridy = 5;
|
||||||
|
panel_2.add(lblNewLabel_5, gbc_lblNewLabel_5);
|
||||||
|
|
||||||
|
jtfFechaNac = new JTextField();
|
||||||
|
GridBagConstraints gbc_textField_5 = new GridBagConstraints();
|
||||||
|
gbc_textField_5.insets = new Insets(0, 0, 5, 5);
|
||||||
|
gbc_textField_5.fill = GridBagConstraints.HORIZONTAL;
|
||||||
|
gbc_textField_5.gridx = 2;
|
||||||
|
gbc_textField_5.gridy = 5;
|
||||||
|
panel_2.add(jtfFechaNac, gbc_textField_5);
|
||||||
|
jtfFechaNac.setColumns(10);
|
||||||
|
|
||||||
|
JLabel lblNewLabel_6 = new JLabel("Estado");
|
||||||
|
GridBagConstraints gbc_lblNewLabel_6 = new GridBagConstraints();
|
||||||
|
gbc_lblNewLabel_6.anchor = GridBagConstraints.EAST;
|
||||||
|
gbc_lblNewLabel_6.insets = new Insets(0, 0, 0, 5);
|
||||||
|
gbc_lblNewLabel_6.gridx = 1;
|
||||||
|
gbc_lblNewLabel_6.gridy = 6;
|
||||||
|
panel_2.add(lblNewLabel_6, gbc_lblNewLabel_6);
|
||||||
|
|
||||||
|
checkBoxEstado = new JCheckBox("");
|
||||||
|
GridBagConstraints gbc_chckbxNewCheckBox = new GridBagConstraints();
|
||||||
|
gbc_chckbxNewCheckBox.anchor = GridBagConstraints.WEST;
|
||||||
|
gbc_chckbxNewCheckBox.insets = new Insets(0, 0, 0, 5);
|
||||||
|
gbc_chckbxNewCheckBox.gridx = 2;
|
||||||
|
gbc_chckbxNewCheckBox.gridy = 6;
|
||||||
|
panel_2.add(checkBoxEstado, gbc_chckbxNewCheckBox);
|
||||||
|
|
||||||
|
JPanel panel_3 = new JPanel();
|
||||||
|
contentPane.add(panel_3, BorderLayout.SOUTH);
|
||||||
|
panel_3.setLayout(new BoxLayout(panel_3, BoxLayout.Y_AXIS));
|
||||||
|
|
||||||
|
JSeparator separator_1 = new JSeparator();
|
||||||
|
panel_3.add(separator_1);
|
||||||
|
|
||||||
|
JPanel panel_4 = new JPanel();
|
||||||
|
panel_3.add(panel_4);
|
||||||
|
panel_4.setLayout(new BoxLayout(panel_4, BoxLayout.X_AXIS));
|
||||||
|
|
||||||
|
JButton btnNewButton = new JButton("Nuevo");
|
||||||
|
btnNewButton.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
Cliente clienteVacio = new Cliente(ControladorCliente.getUltimoCliente().getId() + 1,
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
"",
|
||||||
|
new Date(),
|
||||||
|
true);
|
||||||
|
actualizarDatosEnPantalla(clienteVacio);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
btnNewButton.setToolTipText("Limpia la pantalla para crear un nuevo cliente");
|
||||||
|
panel_4.add(btnNewButton);
|
||||||
|
btnNewButton.setAlignmentX(Component.CENTER_ALIGNMENT);
|
||||||
|
|
||||||
|
JButton btnNewButton_1 = new JButton("Guardar");
|
||||||
|
btnNewButton_1.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy");
|
||||||
|
Date fecha = null;
|
||||||
|
try {
|
||||||
|
fecha = sdf.parse(jtfFechaNac.getText());
|
||||||
|
} catch (ParseException ex) {
|
||||||
|
JOptionPane.showMessageDialog(null, "La fecha introducida no es correcta");
|
||||||
|
//throw new RuntimeException(ex);
|
||||||
|
}
|
||||||
|
|
||||||
|
Cliente updateClient = new Cliente(clienteActual.getId(),
|
||||||
|
jtfNombre.getText(),
|
||||||
|
jtfApellidos.getText(),
|
||||||
|
jtfLocalidad.getText(),
|
||||||
|
jtfDniNie.getText(),
|
||||||
|
fecha,
|
||||||
|
checkBoxEstado.isSelected());
|
||||||
|
|
||||||
|
if (clienteActual.getId() > ControladorCliente.getUltimoCliente().getId()) {
|
||||||
|
if (ControladorCliente.nuevoCliente(updateClient) > 0) {
|
||||||
|
JOptionPane.showMessageDialog(null, "El cliente se ha añadido correctamente");
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(null, "El cliente no se ha podido añadir");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
if (ControladorCliente.actualizarCliente(updateClient) > 0) {
|
||||||
|
JOptionPane.showMessageDialog(null, "El cliente se ha actualizado correctamente");
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(null, "El cliente no se ha podido actualizar");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
actualizarDatosEnPantalla(ControladorCliente.getCliente(clienteActual.getId()));
|
||||||
|
}
|
||||||
|
});
|
||||||
|
btnNewButton_1.setToolTipText("Guarda los cambios realizados en el registro que se ve en pantalla");
|
||||||
|
panel_4.add(btnNewButton_1);
|
||||||
|
btnNewButton_1.setAlignmentX(Component.CENTER_ALIGNMENT);
|
||||||
|
|
||||||
|
JButton btnNewButton_2 = new JButton("Eliminar");
|
||||||
|
btnNewButton_2.addActionListener(new ActionListener() {
|
||||||
|
public void actionPerformed(ActionEvent e) {
|
||||||
|
|
||||||
|
int respuesta = JOptionPane.showConfirmDialog(null, "¿Seguro que desea eliminar el cliente?", "Confirmación", JOptionPane.YES_NO_OPTION);
|
||||||
|
if (respuesta == JOptionPane.YES_OPTION) {
|
||||||
|
|
||||||
|
Cliente clienteAnterior = ControladorCliente.getCliente(clienteActual.getId() - 1);
|
||||||
|
Cliente clienteSiguiente = ControladorCliente.getCliente(clienteActual.getId() + 1);
|
||||||
|
|
||||||
|
if (ControladorCliente.eliminarCliente(clienteActual.getId()) > 0) {
|
||||||
|
JOptionPane.showMessageDialog(null, "El cliente se ha eliminado correctamente");
|
||||||
|
if (clienteAnterior != null) {
|
||||||
|
actualizarDatosEnPantalla(clienteAnterior);
|
||||||
|
} else if (clienteSiguiente != null) {
|
||||||
|
actualizarDatosEnPantalla(clienteSiguiente);
|
||||||
|
} else {
|
||||||
|
btnNewButton.doClick();
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
JOptionPane.showMessageDialog(null, "El cliente no se ha podido eliminar");
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
});
|
||||||
|
btnNewButton_2.setToolTipText("Elimina el registro que se ve en pantalla");
|
||||||
|
panel_4.add(btnNewButton_2);
|
||||||
|
btnNewButton_2.setAlignmentX(Component.CENTER_ALIGNMENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,21 +0,0 @@
|
|||||||
package otros.arkanoid;
|
|
||||||
|
|
||||||
import capitulo04.utils.Utils;
|
|
||||||
|
|
||||||
public class Juego {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
Ladrillo[] ladrillos = new Ladrillo[20];
|
|
||||||
Pelota pelota = new Pelota();
|
|
||||||
|
|
||||||
for (int i = 0; i < ladrillos.length; i++) {
|
|
||||||
ladrillos[i] = new Ladrillo();
|
|
||||||
}
|
|
||||||
|
|
||||||
while (true) {
|
|
||||||
pelota.setX(Utils.generarIntAleatorioEntreLimites(0,800));
|
|
||||||
pelota.setY(Utils.generarIntAleatorioEntreLimites(0,800));
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,103 +0,0 @@
|
|||||||
package otros.arkanoid;
|
|
||||||
|
|
||||||
import capitulo04.utils.Utils;
|
|
||||||
|
|
||||||
public class Ladrillo {
|
|
||||||
private String color;
|
|
||||||
private int x;
|
|
||||||
private int y;
|
|
||||||
private int ancho;
|
|
||||||
private int alto;
|
|
||||||
private int puntosVida;
|
|
||||||
|
|
||||||
public Ladrillo() {
|
|
||||||
this.x = Utils.generarIntAleatorioEntreLimites(0, 800);
|
|
||||||
this.y = Utils.generarIntAleatorioEntreLimites(0, 500);
|
|
||||||
this.ancho = 100;
|
|
||||||
this.alto = 50;
|
|
||||||
this.puntosVida = Utils.generarIntAleatorioEntreLimites(1, 3);
|
|
||||||
|
|
||||||
String[] colores = new String[]{"rojo", "verde", "azul"};
|
|
||||||
if (puntosVida == 1) {
|
|
||||||
int colorEscogido = Utils.generarIntAleatorioEntreLimites(0, 2);
|
|
||||||
this.color = colores[colorEscogido];
|
|
||||||
} else if (puntosVida == 2) {
|
|
||||||
this.color = "plateado";
|
|
||||||
} else {
|
|
||||||
this.color = "dorado";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* @param p Pelota
|
|
||||||
* @return Devuelve si tiene vida o se ha quedado a 0
|
|
||||||
*/
|
|
||||||
public boolean pelotaChocaEnLadrillo(Pelota p) {
|
|
||||||
if (p.getX() > this.x
|
|
||||||
&& p.getY() > this.y) {
|
|
||||||
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
public String getColor() {
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setColor(String color) {
|
|
||||||
this.color = color;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getX() {
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setX(int x) {
|
|
||||||
this.x = x;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getY() {
|
|
||||||
return y;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setY(int y) {
|
|
||||||
this.y = y;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getAncho() {
|
|
||||||
return ancho;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAncho(int ancho) {
|
|
||||||
this.ancho = ancho;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getAlto() {
|
|
||||||
return alto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAlto(int alto) {
|
|
||||||
this.alto = alto;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getPuntosVida() {
|
|
||||||
return puntosVida;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPuntosVida(int puntosVida) {
|
|
||||||
this.puntosVida = puntosVida;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "Ladrillo{" +
|
|
||||||
"color='" + color + '\'' +
|
|
||||||
", x=" + x +
|
|
||||||
", y=" + y +
|
|
||||||
", ancho=" + ancho +
|
|
||||||
", alto=" + alto +
|
|
||||||
", puntosVida=" + puntosVida +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
package otros.arkanoid;
|
|
||||||
|
|
||||||
public class Pelota {
|
|
||||||
private int x;
|
|
||||||
private int y;
|
|
||||||
|
|
||||||
public Pelota() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getX() {
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setX(int x) {
|
|
||||||
this.x = x;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getY() {
|
|
||||||
return y;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setY(int y) {
|
|
||||||
this.y = y;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "Pelota{" +
|
|
||||||
"x=" + x +
|
|
||||||
", y=" + y +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
package otros.cromos;
|
|
||||||
|
|
||||||
public class Cromo {
|
|
||||||
private String nombreJugador;
|
|
||||||
private int puntuacion;
|
|
||||||
private String equipo;
|
|
||||||
|
|
||||||
public Cromo() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public Cromo(String nombreJugador, int puntuacion, String equipo) {
|
|
||||||
this.nombreJugador = nombreJugador;
|
|
||||||
this.puntuacion = puntuacion;
|
|
||||||
this.equipo = equipo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getNombreJugador() {
|
|
||||||
return nombreJugador;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNombreJugador(String nombreJugador) {
|
|
||||||
this.nombreJugador = nombreJugador;
|
|
||||||
}
|
|
||||||
|
|
||||||
private int getPuntuacion() {
|
|
||||||
return puntuacion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setPuntuacion(int puntuacion) {
|
|
||||||
this.puntuacion = puntuacion;
|
|
||||||
}
|
|
||||||
|
|
||||||
public String getEquipo() {
|
|
||||||
return equipo;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setEquipo(String equipo) {
|
|
||||||
this.equipo = equipo;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public String toString() {
|
|
||||||
return "Cromo{" +
|
|
||||||
"nombre='" + nombreJugador + '\'' +
|
|
||||||
", puntuacion=" + puntuacion +
|
|
||||||
", equipo='" + equipo + '\'' +
|
|
||||||
'}';
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
package otros.cromos;
|
|
||||||
|
|
||||||
public class CromoBaloncesto extends Cromo{
|
|
||||||
private int altura;
|
|
||||||
|
|
||||||
public CromoBaloncesto() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public CromoBaloncesto(String nombreJugador, int puntuacion, String equipo) {
|
|
||||||
super(nombreJugador, puntuacion, equipo);
|
|
||||||
}
|
|
||||||
|
|
||||||
public CromoBaloncesto(String nombreJugador, int puntuacion, String equipo, int altura) {
|
|
||||||
super(nombreJugador, puntuacion, equipo);
|
|
||||||
this.altura = altura;
|
|
||||||
}
|
|
||||||
|
|
||||||
public int getAltura() {
|
|
||||||
return altura;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setAltura(int altura) {
|
|
||||||
this.altura = altura;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void prueba() {
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
@@ -1,10 +0,0 @@
|
|||||||
package otros.cromos;
|
|
||||||
|
|
||||||
public class CromoFutbol extends Cromo{
|
|
||||||
public CromoFutbol() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public CromoFutbol(String nombreJugador, int puntuacion, String equipo) {
|
|
||||||
super(nombreJugador, puntuacion, equipo);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
package otros.cromos;
|
|
||||||
|
|
||||||
public class Principal {
|
|
||||||
public static void main(String[] args) {
|
|
||||||
CromoBaloncesto pepe = new CromoBaloncesto("Hola", 70, "pepe");
|
|
||||||
//System.out.println(pepe/*.getPuntuacion()*/);
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
Reference in New Issue
Block a user