Implementaciones IPaisDAO y IREpartoDAO
This commit is contained in:
parent
683bc05d20
commit
9e6a53937f
@ -18,6 +18,6 @@
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="lib" path="C:/Users/IsidoroNM/Downloads/mapamundi.jar"/>
|
||||
<classpathentry kind="lib" path="C:/Users/ineva/INM/tmp/mapamundi.jar"/>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
|
||||
5
config/config.properties
Normal file
5
config/config.properties
Normal file
@ -0,0 +1,5 @@
|
||||
# Parámetros de conexión 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
|
||||
@ -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<Reparto> 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);
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
41
src/es/palomafp/aadd/inm/dao/impl/PaisDaoJAR.java
Normal file
41
src/es/palomafp/aadd/inm/dao/impl/PaisDaoJAR.java
Normal file
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
@ -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<Reparto> obtenerListaRepartoPeliculasNombreActorTerminaT() {
|
||||
List<Reparto> 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<Reparto>();
|
||||
while (resultado.next()) {
|
||||
// Completar los atributos de Reparto
|
||||
Reparto reparto = new Reparto();
|
||||
|
||||
listaReparto.add(reparto);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return listaReparto;
|
||||
}
|
||||
|
||||
}
|
||||
99
src/es/palomafp/aadd/inm/dao/impl/RepartoDaoJDBC.java
Normal file
99
src/es/palomafp/aadd/inm/dao/impl/RepartoDaoJDBC.java
Normal file
@ -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<Reparto> obtenerListaRepartoPeliculasNombreActorTerminaT() {
|
||||
List<Reparto> 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<Reparto>();
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
@ -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();
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user