diff --git a/.classpath b/.classpath
index 7f50c29..46fcc12 100644
--- a/.classpath
+++ b/.classpath
@@ -18,6 +18,6 @@
-
+
diff --git a/config/conf.properties b/config/conf.properties
deleted file mode 100644
index e69de29..0000000
diff --git a/config/config.properties b/config/config.properties
new file mode 100644
index 0000000..5abecf6
--- /dev/null
+++ b/config/config.properties
@@ -0,0 +1,5 @@
+# Par醡etros de conexi髇 a la base de datos 'Cine' en SGDB MySQL
+jdbc.driver = com.mysql.cj.jdbc.Driver
+jdbc.url = jdbc:mysql://192.168.1.36:3306/Cine
+jdbc.usuario = root
+jdbc.password = mysql_123
diff --git a/src/es/palomafp/aadd/inm/GestorCine.java b/src/es/palomafp/aadd/inm/GestorCine.java
index e2a0788..014051a 100644
--- a/src/es/palomafp/aadd/inm/GestorCine.java
+++ b/src/es/palomafp/aadd/inm/GestorCine.java
@@ -3,7 +3,8 @@ package es.palomafp.aadd.inm;
import java.util.List;
import es.palomafp.aadd.inm.dao.IRepartoDAO;
-import es.palomafp.aadd.inm.dao.impl.RepartoDaoGeneral;
+import es.palomafp.aadd.inm.dao.impl.RepartoDaoJDBC;
+import es.palomafp.aadd.inm.util.ConversorTiposDatosYFormatos;
import es.palomafp.aadd.inm.vo.Reparto;
/**
@@ -21,16 +22,19 @@ public class GestorCine {
}
private void imprimirRepartoPeliculasActorTerminaEnT() {
- IRepartoDAO iRepartoDAO = new RepartoDaoGeneral();
+ IRepartoDAO iRepartoDAO = new RepartoDaoJDBC();
List listaReparto = iRepartoDAO.obtenerListaRepartoPeliculasNombreActorTerminaT();
for (Reparto reparto : listaReparto) {
- System.out.println(reparto);
+// System.out.println(reparto);
String textoImprimir = """
- %s, que naci贸 en %s (%s),
- particip贸 en la pel铆cula '%s', rodada
- en %s (%s) y dirigida por %d
- que naci贸 en %s (%s) el %s.
+ %s, que naci贸 en %s (%s), particip贸 en la pel铆cula
+ '%s', rodada en %s (%s) y dirigida por
+ %s que naci贸 en %s (%s) el %s.
""";
+ String fechaNacimientoFormateada = null;
+ if (reparto.getPelicula().getDirector().getFechaNacimiento()!=null) {
+ ConversorTiposDatosYFormatos.convertirDateAString(reparto.getPelicula().getDirector().getFechaNacimiento(), "dd/MM/yyyy");
+ }
textoImprimir= String.format(textoImprimir, reparto.getActor().getNombre(),
reparto.getActor().getPaisNacimiento().getNombre(),
reparto.getActor().getPaisNacimiento().getContinente().getNombre(),
@@ -38,8 +42,8 @@ public class GestorCine {
reparto.getPelicula().getPaisLocalizacion().getContinente().getNombre(),
reparto.getPelicula().getDirector().getNombre(),
reparto.getPelicula().getDirector().getPaisNacimiento().getNombre(),
- reparto.getPelicula().getDirector().getPaisNacimiento().getContinente(),
- reparto.getPelicula().getDirector().getFechaNacimiento());
+ reparto.getPelicula().getDirector().getPaisNacimiento().getContinente().getNombre(),
+ fechaNacimientoFormateada);
System.out.println(textoImprimir);
}
}
diff --git a/src/es/palomafp/aadd/inm/dao/impl/PaisDaoGeneral.java b/src/es/palomafp/aadd/inm/dao/impl/PaisDaoGeneral.java
deleted file mode 100644
index e681899..0000000
--- a/src/es/palomafp/aadd/inm/dao/impl/PaisDaoGeneral.java
+++ /dev/null
@@ -1,22 +0,0 @@
-package es.palomafp.aadd.inm.dao.impl;
-
-import es.palomafp.aadd.inm.dao.IPaisDAO;
-import es.palomafp.aadd.inm.vo.Pais;
-
-/**
-*
-* PaisDaoGeneral: Clase que representa la implementaci贸n de un Pais
-*
-* @author Isidoro Nevares Mart铆n - IES Virgen de la Paloma
-* @date 2 oct 2025
-*/
-
-public class PaisDaoGeneral implements IPaisDAO{
-
- @Override
- public Pais obtenerPais(int identificadorPais) {
- // TODO Auto-generated method stub
- return null;
- }
-
-}
diff --git a/src/es/palomafp/aadd/inm/dao/impl/PaisDaoJAR.java b/src/es/palomafp/aadd/inm/dao/impl/PaisDaoJAR.java
new file mode 100644
index 0000000..12f64ed
--- /dev/null
+++ b/src/es/palomafp/aadd/inm/dao/impl/PaisDaoJAR.java
@@ -0,0 +1,41 @@
+package es.palomafp.aadd.inm.dao.impl;
+
+import es.palomafp.aadd.inm.dao.IPaisDAO;
+import es.palomafp.aadd.inm.vo.Continente;
+import es.palomafp.aadd.inm.vo.Pais;
+import inm.mapamundi.dao.impl.PaisINMDaoJDBC;
+import inm.mapamundi.inm.dao.IPaisINMDAO;
+
+/**
+ *
+ * PaisDaoGeneral: Clase que representa la implementaci贸n de un Pais
+ *
+ * @author Isidoro Nevares Mart铆n - IES Virgen de la Paloma
+ * @date 2 oct 2025
+ */
+
+public class PaisDaoJAR implements IPaisDAO {
+
+ @Override
+ public Pais obtenerPais(int identificadorPais) {
+ Pais pais = null;
+ IPaisINMDAO paisINMDAO = new PaisINMDaoJDBC();
+ inm.mapamundi.vo.Pais paisINM = paisINMDAO.obtenerPaisPorID(identificadorPais);
+ if (paisINM != null) {
+ // Informaci贸n del Continente
+ Continente continente = new Continente();
+ continente.setCodigo(paisINM.getContinente().getCodigo());
+ continente.setNombre(paisINM.getContinente().getNombre());
+
+ // Informaci贸n del Pa铆s
+ pais = new Pais();
+ pais.setIdentificador(identificadorPais);
+ pais.setNombre(paisINM.getNombre());
+ pais.setCapital(paisINM.getCapital());
+
+ pais.setContinente(continente);
+ }
+ return pais;
+ }
+
+}
diff --git a/src/es/palomafp/aadd/inm/dao/impl/RepartoDaoGeneral.java b/src/es/palomafp/aadd/inm/dao/impl/RepartoDaoGeneral.java
deleted file mode 100644
index 179b8b4..0000000
--- a/src/es/palomafp/aadd/inm/dao/impl/RepartoDaoGeneral.java
+++ /dev/null
@@ -1,51 +0,0 @@
-package es.palomafp.aadd.inm.dao.impl;
-
-import java.sql.Connection;
-import java.sql.ResultSet;
-import java.sql.SQLException;
-import java.sql.Statement;
-import java.util.ArrayList;
-import java.util.List;
-
-import es.palomafp.aadd.inm.dao.IRepartoDAO;
-import es.palomafp.aadd.inm.gestor.GestorConexionJDBC;
-import es.palomafp.aadd.inm.vo.Reparto;
-
-/**
-*
-* RepartoDaoGeneral: Clase que representa la implementaci贸n de un Reparto
-*
-* @author Isidoro Nevares Mart铆n - IES Virgen de la Paloma
-* @date 2 oct 2025
-*/
-
-public class RepartoDaoGeneral implements IRepartoDAO{
-
- @Override
- public List obtenerListaRepartoPeliculasNombreActorTerminaT() {
- List listaReparto=null;
- String sentenciaSQL = """
- SELECT *
- FROM T_PAIS p join T_CONTINENTE c
- on cod_continente= codigo
- WHERE identificador=107
- """;
-
- // try con recursos "cerrables": Connection, Statement, ResultSet
- try (Connection conexion = GestorConexionJDBC.obtenerConexionJDBC();
- Statement stm = conexion.createStatement();
- ResultSet resultado = stm.executeQuery(sentenciaSQL);) {
- listaReparto= new ArrayList();
- while (resultado.next()) {
- // Completar los atributos de Reparto
- Reparto reparto = new Reparto();
-
- listaReparto.add(reparto);
- }
- } catch (SQLException e) {
- e.printStackTrace();
- }
- return listaReparto;
- }
-
-}
diff --git a/src/es/palomafp/aadd/inm/dao/impl/RepartoDaoJDBC.java b/src/es/palomafp/aadd/inm/dao/impl/RepartoDaoJDBC.java
new file mode 100644
index 0000000..5119156
--- /dev/null
+++ b/src/es/palomafp/aadd/inm/dao/impl/RepartoDaoJDBC.java
@@ -0,0 +1,99 @@
+package es.palomafp.aadd.inm.dao.impl;
+
+import java.sql.Connection;
+import java.sql.ResultSet;
+import java.sql.SQLException;
+import java.sql.Statement;
+import java.util.ArrayList;
+import java.util.Date;
+import java.util.List;
+
+import es.palomafp.aadd.inm.dao.IPaisDAO;
+import es.palomafp.aadd.inm.dao.IRepartoDAO;
+import es.palomafp.aadd.inm.gestor.GestorConexionJDBC;
+import es.palomafp.aadd.inm.vo.Actor;
+import es.palomafp.aadd.inm.vo.Director;
+import es.palomafp.aadd.inm.vo.Pais;
+import es.palomafp.aadd.inm.vo.Pelicula;
+import es.palomafp.aadd.inm.vo.Reparto;
+
+/**
+*
+* RepartoDaoGeneral: Clase que representa la implementaci贸n de un Reparto con JDBC
+*
+* @author Isidoro Nevares Mart铆n - IES Virgen de la Paloma
+* @date 2 oct 2025
+*/
+
+public class RepartoDaoJDBC implements IRepartoDAO{
+
+ @Override
+ public List obtenerListaRepartoPeliculasNombreActorTerminaT() {
+ List listaReparto=null;
+ String sentenciaSQL = """
+ select a.nombre as nombre_actor, a.id_pais as id_pais_actor,
+ p.titulo as titulo_pelicula, p.id_pais as id_pais_pelicula,
+ d.nombre as nombre_director, d.id_pais as id_pais_director, d.fecha_nacimiento as fecha_nacimiento_director
+ from reparto r join actor a
+ on r.id_actor =a.identificador
+ join pelicula p
+ on p.identificador =r.id_pelicula
+ join director d
+ on p.id_director = d.identificador
+ where p.identificador IN (SELECT re.id_pelicula
+ from reparto re join actor ac
+ on re.id_actor = ac.identificador
+ join pelicula pe
+ on re.id_pelicula = pe.identificador
+ where ac.nombre like '%t');
+ """;
+
+ // try con recursos "cerrables": Connection, Statement, ResultSet
+ try (Connection conexion = GestorConexionJDBC.obtenerConexionJDBC();
+ Statement stm = conexion.createStatement();
+ ResultSet resultado = stm.executeQuery(sentenciaSQL);) {
+ listaReparto= new ArrayList();
+ while (resultado.next()) {
+ IPaisDAO paisDAO = new PaisDaoJAR();
+ // Informaci贸n del Actor
+ String nombreActor = resultado.getString("nombre_actor");
+ int idPaisNacimientoActor = resultado.getInt("id_pais_actor");
+ Pais paisNacimientoActor = paisDAO.obtenerPais(idPaisNacimientoActor);
+ Actor actor = new Actor();
+ actor.setNombre(nombreActor);
+ actor.setPaisNacimiento(paisNacimientoActor);
+
+ // Informaci贸n del Director
+ String nombreDirector = resultado.getString("nombre_director");
+ int idPaisNacimientoDirector= resultado.getInt("id_pais_director");
+ Pais paisNacimientoDirector = paisDAO.obtenerPais(idPaisNacimientoDirector);
+ Date fechaNacimientoDirector= resultado.getDate("fecha_nacimiento_director");
+ Director director = new Director();
+ director.setNombre(nombreDirector);
+ director.setPaisNacimiento(paisNacimientoDirector);
+ director.setFechaNacimiento(fechaNacimientoDirector);
+
+ // Informaci贸n de la Pel铆cula
+ String tituloPelicula = resultado.getString("titulo_pelicula");
+ int idPaisLocalizacionPelicula= resultado.getInt("id_pais_pelicula");
+ Pais paisLocalizacionPelicula = paisDAO.obtenerPais(idPaisLocalizacionPelicula);
+ Pelicula pelicula = new Pelicula();
+ pelicula.setTitulo(tituloPelicula);
+ pelicula.setPaisLocalizacion(paisLocalizacionPelicula);
+ pelicula.setDirector(director);
+
+
+ // Completar los atributos de Reparto
+ Reparto reparto = new Reparto();
+ reparto.setActor(actor);
+ reparto.setPelicula(pelicula);
+
+ listaReparto.add(reparto);
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
+ return listaReparto;
+ }
+
+}
diff --git a/src/es/palomafp/aadd/inm/gestor/GestorFicheroConfiguracion.java b/src/es/palomafp/aadd/inm/gestor/GestorFicheroConfiguracion.java
index bd2a0b6..3a92bc9 100644
--- a/src/es/palomafp/aadd/inm/gestor/GestorFicheroConfiguracion.java
+++ b/src/es/palomafp/aadd/inm/gestor/GestorFicheroConfiguracion.java
@@ -1,5 +1,6 @@
package es.palomafp.aadd.inm.gestor;
+import java.io.FileInputStream;
import java.util.Properties;
/**
@@ -11,7 +12,7 @@ import java.util.Properties;
* @date 31 oct 2025
*/
public class GestorFicheroConfiguracion {
- private static final String RUTA_FICHERO_CONFIGURACION = "config/conf.properties";
+ private static final String RUTA_FICHERO_CONFIGURACION = "config/config.properties";
private static Properties propiedades;
private GestorFicheroConfiguracion() {
@@ -21,10 +22,10 @@ public class GestorFicheroConfiguracion {
propiedades= new Properties();
try {
// Fichero que est谩 en el classpath
- propiedades.load(GestorFicheroConfiguracion.class.getClassLoader().getResourceAsStream(RUTA_FICHERO_CONFIGURACION));
+ //propiedades.load(GestorFicheroConfiguracion.class.getClassLoader().getResourceAsStream(RUTA_FICHERO_CONFIGURACION));
// Fichero con ruta relativa al proyecto
-// propiedades.load(new FileInputStream(RUTA_FICHERO_CONFIGURACION));
+ propiedades.load(new FileInputStream(RUTA_FICHERO_CONFIGURACION));
} catch (Exception e) {
e.printStackTrace();
}
diff --git a/src/es/palomafp/aadd/inm/util/ConversorTiposDatosYFormatos.java b/src/es/palomafp/aadd/inm/util/ConversorTiposDatosYFormatos.java
new file mode 100644
index 0000000..b6488a3
--- /dev/null
+++ b/src/es/palomafp/aadd/inm/util/ConversorTiposDatosYFormatos.java
@@ -0,0 +1,25 @@
+package es.palomafp.aadd.inm.util;
+
+import java.time.LocalDate;
+import java.time.format.DateTimeFormatter;
+import java.util.Date;
+
+/**
+ *
+ * ConversorTiposDatos: Clase que realiza conversiones entre tipos de datos y formatos.
+ * @author Isidoro Nevares Mart铆n - IES Virgen de la Paloma
+ * @date 14 nov 2025
+ *
+ *
+ */
+
+public class ConversorTiposDatosYFormatos {
+ public static String convertirDateAString(Date fecha, String formato) {
+ String fechaFormateada = null;
+ fechaFormateada= LocalDate.parse(fecha.toString())
+ .format(DateTimeFormatter.ofPattern(formato));
+
+ return fechaFormateada;
+ }
+}
+