Evolución del DAO
This commit is contained in:
parent
850580e835
commit
0ceb18ba02
2
.gitignore
vendored
Normal file
2
.gitignore
vendored
Normal file
@ -0,0 +1,2 @@
|
||||
/target/
|
||||
*.class
|
||||
@ -1,13 +1,13 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
|
||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=24
|
||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||
org.eclipse.jdt.core.compiler.compliance=1.8
|
||||
org.eclipse.jdt.core.compiler.compliance=24
|
||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||
org.eclipse.jdt.core.compiler.problem.enablePreviewFeatures=disabled
|
||||
org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=ignore
|
||||
org.eclipse.jdt.core.compiler.problem.reportPreviewFeatures=warning
|
||||
org.eclipse.jdt.core.compiler.release=disabled
|
||||
org.eclipse.jdt.core.compiler.source=1.8
|
||||
org.eclipse.jdt.core.compiler.source=24
|
||||
|
||||
@ -1,5 +0,0 @@
|
||||
# Parámetros de conexión a la base de datos MapaMundi en SGDB MySQL
|
||||
jdbc.driver = com.mysql.cj.jdbc.Driver
|
||||
jdbc.url = jdbc:mysql://192.168.1.35:3306/Mapamundi
|
||||
jdbc.usuario = root
|
||||
jdbc.password = mysql_123
|
||||
9
pom.xml
9
pom.xml
@ -3,4 +3,13 @@
|
||||
<groupId>aadd_act2_3</groupId>
|
||||
<artifactId>aadd_act2_3</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
<dependencies>
|
||||
<!-- https://mvnrepository.com/artifact/com.mysql/mysql-connector-j -->
|
||||
<dependency>
|
||||
<groupId>com.mysql</groupId>
|
||||
<artifactId>mysql-connector-j</artifactId>
|
||||
<version>9.5.0</version>
|
||||
</dependency>
|
||||
</dependencies>
|
||||
|
||||
</project>
|
||||
@ -1,8 +1,14 @@
|
||||
package es.palomafp.aadd.inm;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Scanner;
|
||||
|
||||
import es.palomafp.aadd.inm.gestor.GestorFicheroConfiguracion;
|
||||
import es.palomafp.aadd.inm.dao.IContinenteDAO;
|
||||
import es.palomafp.aadd.inm.dao.IPaisDAO;
|
||||
import es.palomafp.aadd.inm.dao.impl.ContinenteDaoJDBC;
|
||||
import es.palomafp.aadd.inm.dao.impl.PaisDaoJDBC;
|
||||
import es.palomafp.aadd.inm.vo.Continente;
|
||||
import es.palomafp.aadd.inm.vo.Pais;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -15,8 +21,8 @@ import es.palomafp.aadd.inm.gestor.GestorFicheroConfiguracion;
|
||||
public class GestorMapaMundi {
|
||||
|
||||
public static void main(String[] args) {
|
||||
String urlJDBC= GestorFicheroConfiguracion.getValorDeConfiguracion("jdbc.url");
|
||||
System.out.println(urlJDBC);
|
||||
GestorMapaMundi gestor = new GestorMapaMundi();
|
||||
|
||||
Scanner scanner = new Scanner(System.in); // Crear el scanner
|
||||
|
||||
System.out.println("Introduce una opción de procesamiento sobre Mapa Mundi.");
|
||||
@ -28,19 +34,68 @@ public class GestorMapaMundi {
|
||||
|
||||
switch (opcion) {
|
||||
case "1":
|
||||
System.out.println("Opción 1: Consultar países del continente americao que empiezan por Sa");
|
||||
System.out.println("Opción 1: Consultar países del continente americano que empiezan por Sa");
|
||||
List<Pais> listaPaises =gestor.consultarPaisesAmericanosEmpiezanSa();
|
||||
for(Pais pais : listaPaises) {
|
||||
String infoPais = "%s (%d) pertenece al continente %s (%s)";
|
||||
infoPais = String.format(infoPais, pais.getNombre(), pais.getIdentificador(),
|
||||
pais.getContinente().getNombre(), pais.getContinente().getCodigo());
|
||||
|
||||
System.out.println(infoPais);
|
||||
}
|
||||
break;
|
||||
case "2":
|
||||
System.out.println("Opción 2: Añadir nuevo continente.");
|
||||
Continente continente = new Continente();
|
||||
continente.setCodigo("06");
|
||||
continente.setNombre("Antártida");
|
||||
gestor.anyadirContinente(continente);
|
||||
break;
|
||||
case "3":
|
||||
System.out.println("Opción 3: Actualizar el país con código 107. capital -> Capital City.");
|
||||
gestor.actualizarPaisCodigo107();
|
||||
break;
|
||||
case "4":
|
||||
System.out.println("Opción 4: Eliminar el continente con código 02.");
|
||||
gestor.eliminarContinente("02");
|
||||
break;
|
||||
}
|
||||
|
||||
scanner.close();
|
||||
}
|
||||
|
||||
public List<Pais> consultarPaisesAmericanosEmpiezanSa() {
|
||||
List<Pais> listaPaises = null;
|
||||
|
||||
IPaisDAO paisDAO = new PaisDaoJDBC();
|
||||
listaPaises = paisDAO.obtenerListaPaisesAmericanosEmpiezanSa();
|
||||
|
||||
return listaPaises;
|
||||
}
|
||||
|
||||
public void eliminarContinente(String codigo) {
|
||||
IContinenteDAO continenteDAO = new ContinenteDaoJDBC();
|
||||
continenteDAO.eliminarContinentePorCodigo(codigo);
|
||||
}
|
||||
|
||||
public Pais actualizarPaisCodigo107() {
|
||||
Pais pais = null;
|
||||
int identificadorPais = 107;
|
||||
|
||||
IPaisDAO paisDAO = new PaisDaoJDBC();
|
||||
pais = paisDAO.obtenerPaisPorID(identificadorPais);
|
||||
pais.setCapital("Capital City");
|
||||
paisDAO.actualizarPais(pais);
|
||||
|
||||
pais = paisDAO.obtenerPaisPorID(identificadorPais);
|
||||
|
||||
return pais;
|
||||
}
|
||||
|
||||
public void anyadirContinente(Continente continente) {
|
||||
IContinenteDAO continenteDAO = new ContinenteDaoJDBC();
|
||||
continenteDAO.anyadirContinente(continente);
|
||||
System.out.println("Se ha creado el continente: " + continente);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package es.palomafp.aadd.inm.dao;
|
||||
|
||||
import es.palomafp.aadd.inm.vo.Continente;
|
||||
|
||||
/**
|
||||
*
|
||||
* IContinenteDAO: Interfaz que define las operaciones de acceso a datos para Continente.
|
||||
@ -8,4 +10,6 @@ package es.palomafp.aadd.inm.dao;
|
||||
* @date 31 oct 2025
|
||||
*/
|
||||
public interface IContinenteDAO {
|
||||
void anyadirContinente(Continente continente);
|
||||
void eliminarContinentePorCodigo(String codigo);
|
||||
}
|
||||
|
||||
@ -12,5 +12,7 @@ import es.palomafp.aadd.inm.vo.Pais;
|
||||
* @date 31 oct 2025
|
||||
*/
|
||||
public interface IPaisDAO {
|
||||
List<Pais> obtenerListaPaises(String codigoContinente);
|
||||
Pais obtenerPaisPorID(int identificador);
|
||||
List<Pais> obtenerListaPaisesAmericanosEmpiezanSa();
|
||||
void actualizarPais(Pais pais);
|
||||
}
|
||||
|
||||
@ -1,6 +1,12 @@
|
||||
package es.palomafp.aadd.inm.dao.impl;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.SQLException;
|
||||
import java.sql.Statement;
|
||||
|
||||
import es.palomafp.aadd.inm.dao.IContinenteDAO;
|
||||
import es.palomafp.aadd.inm.gestor.GestorConexionJDBC;
|
||||
import es.palomafp.aadd.inm.vo.Continente;
|
||||
|
||||
/**
|
||||
*
|
||||
@ -10,4 +16,44 @@ import es.palomafp.aadd.inm.dao.IContinenteDAO;
|
||||
* @date 31 oct 2025
|
||||
*/
|
||||
public class ContinenteDaoJDBC implements IContinenteDAO {
|
||||
|
||||
@Override
|
||||
public void anyadirContinente(Continente continente) {
|
||||
String sentenciaSQL = "INSERT INTO T_CONTINENTE (codigo, nombre_continente) VALUES ('%s', '%s')";
|
||||
|
||||
sentenciaSQL = String.format(sentenciaSQL, continente.getCodigo(), continente.getNombre());
|
||||
|
||||
// try con recursos "cerrables": Connection, Statement
|
||||
try (Connection conexion = GestorConexionJDBC.obtenerConexionJDBC();
|
||||
Statement stm = conexion.createStatement();) {
|
||||
stm.executeUpdate(sentenciaSQL);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void eliminarContinentePorCodigo(String codigo) {
|
||||
String sentenciaBorradoPaisesSQL = "DELETE FROM T_PAIS WHERE cod_continente='%s'";
|
||||
sentenciaBorradoPaisesSQL = String.format(sentenciaBorradoPaisesSQL, codigo);
|
||||
|
||||
String sentenciaBorradoContinenteSQL = "DELETE FROM T_CONTINENTE WHERE codigo='%s'";
|
||||
sentenciaBorradoContinenteSQL = String.format(sentenciaBorradoContinenteSQL, codigo);
|
||||
|
||||
// try con recursos "cerrables": Connection, Statement
|
||||
try (Connection conexion = GestorConexionJDBC.obtenerConexionJDBC();
|
||||
Statement stm = conexion.createStatement();) {
|
||||
|
||||
// Se desactiva 'autocommit' para manejar la transacción manualmente
|
||||
conexion.setAutoCommit(false);
|
||||
stm.executeUpdate(sentenciaBorradoPaisesSQL);
|
||||
stm.executeUpdate(sentenciaBorradoContinenteSQL);
|
||||
|
||||
// Confirmamos la transacción
|
||||
conexion.commit();
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,9 +1,15 @@
|
||||
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.IPaisDAO;
|
||||
import es.palomafp.aadd.inm.gestor.GestorFicheroConfiguracion;
|
||||
import es.palomafp.aadd.inm.gestor.GestorConexionJDBC;
|
||||
import es.palomafp.aadd.inm.vo.Continente;
|
||||
import es.palomafp.aadd.inm.vo.Pais;
|
||||
|
||||
/**
|
||||
@ -16,10 +22,85 @@ import es.palomafp.aadd.inm.vo.Pais;
|
||||
public class PaisDaoJDBC implements IPaisDAO {
|
||||
|
||||
@Override
|
||||
public List<Pais> obtenerListaPaises(String codigoContinente) {
|
||||
// TODO Auto-generated method stub
|
||||
String urlJDBC= GestorFicheroConfiguracion.getValorDeConfiguracion("jdbc.url");
|
||||
System.out.println("urlJDBC: "+urlJDBC);
|
||||
return null;
|
||||
public List<Pais> obtenerListaPaisesAmericanosEmpiezanSa() {
|
||||
List<Pais> listaPaises = null;
|
||||
String sentenciaSQL = """
|
||||
SELECT *
|
||||
FROM T_PAIS p join T_CONTINENTE c
|
||||
on cod_continente= codigo
|
||||
WHERE codigo='02' AND p.nombre_pais LIKE 'Sa%'
|
||||
""";
|
||||
|
||||
// try con recursos "cerrables": Connection, Statement, ResultSet
|
||||
try (Connection conexion = GestorConexionJDBC.obtenerConexionJDBC();
|
||||
Statement stm = conexion.createStatement();
|
||||
ResultSet resultado = stm.executeQuery(sentenciaSQL);) {
|
||||
listaPaises = new ArrayList<Pais>();
|
||||
while (resultado.next()) {
|
||||
// Completar los atributos de continente
|
||||
Continente continente = new Continente();
|
||||
continente.setCodigo(resultado.getString("codigo"));
|
||||
continente.setNombre(resultado.getString("nombre_continente"));
|
||||
|
||||
Pais pais = new Pais();
|
||||
pais.setIdentificador(resultado.getInt("identificador"));
|
||||
pais.setNombre(resultado.getString("nombre_pais"));
|
||||
pais.setCapital(resultado.getString("capital"));
|
||||
pais.setContinente(continente);
|
||||
|
||||
listaPaises.add(pais);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return listaPaises;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void actualizarPais(Pais pais) {
|
||||
String sentenciaSQL = "update T_PAIS set capital= '%s' WHERE identificador=%d";
|
||||
sentenciaSQL = String.format(sentenciaSQL, pais.getCapital(), pais.getIdentificador());
|
||||
|
||||
// try con recursos "cerrables": Connection, Statement
|
||||
try (Connection conexion = GestorConexionJDBC.obtenerConexionJDBC();
|
||||
Statement stm = conexion.createStatement();) {
|
||||
stm.executeUpdate(sentenciaSQL);
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Pais obtenerPaisPorID(int identificador) {
|
||||
Pais pais = null;
|
||||
String sentenciaSQL = """
|
||||
SELECT *
|
||||
FROM T_PAIS p join T_CONTINENTE c
|
||||
on cod_continente= codigo
|
||||
WHERE identificador=%d
|
||||
""";
|
||||
sentenciaSQL = String.format(sentenciaSQL, identificador);
|
||||
|
||||
// try con recursos "cerrables": Connection, Statement, ResultSet
|
||||
try (Connection conexion = GestorConexionJDBC.obtenerConexionJDBC();
|
||||
Statement stm = conexion.createStatement();
|
||||
ResultSet resultado = stm.executeQuery(sentenciaSQL);) {
|
||||
if (resultado.next()) {
|
||||
// Completar los atributos de continente
|
||||
Continente continente = new Continente();
|
||||
continente.setCodigo(resultado.getString("codigo"));
|
||||
continente.setNombre(resultado.getString("nombre_continente"));
|
||||
|
||||
pais = new Pais();
|
||||
pais.setIdentificador(resultado.getInt("identificador"));
|
||||
pais.setNombre(resultado.getString("nombre_pais"));
|
||||
pais.setCapital(resultado.getString("capital"));
|
||||
pais.setContinente(continente);
|
||||
}
|
||||
} catch (SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return pais;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,39 @@
|
||||
package es.palomafp.aadd.inm.gestor;
|
||||
|
||||
import java.sql.Connection;
|
||||
import java.sql.DriverManager;
|
||||
import java.sql.SQLException;
|
||||
|
||||
/**
|
||||
*
|
||||
* GestorConexionJDBC: Clase que realiza ....
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 6 nov 2025
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
public class GestorConexionJDBC {
|
||||
|
||||
// Constructor privado para evitar instanciación
|
||||
private GestorConexionJDBC() {
|
||||
}
|
||||
|
||||
public static Connection obtenerConexionJDBC() {
|
||||
Connection conexion = null;
|
||||
String driverJDBC= GestorFicheroConfiguracion.getValorDeConfiguracion("jdbc.driver");
|
||||
try {
|
||||
Class.forName(driverJDBC);
|
||||
|
||||
String urlJDBC= GestorFicheroConfiguracion.getValorDeConfiguracion("jdbc.url");
|
||||
String usuario= GestorFicheroConfiguracion.getValorDeConfiguracion("jdbc.usuario");
|
||||
String password= GestorFicheroConfiguracion.getValorDeConfiguracion("jdbc.password");
|
||||
|
||||
conexion=DriverManager.getConnection(urlJDBC, usuario, password);
|
||||
} catch (ClassNotFoundException | SQLException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return conexion;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1,6 +1,5 @@
|
||||
package es.palomafp.aadd.inm.gestor;
|
||||
|
||||
import java.io.FileInputStream;
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
@ -22,10 +21,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();
|
||||
}
|
||||
|
||||
@ -1,5 +1,5 @@
|
||||
# Parámetros de conexión a la base de datos MapaMundi en SGDB MySQL
|
||||
jdbc.driver = com.mysql.cj.jdbc.Driver
|
||||
jdbc.url = jdbc:mysql://192.168.1.35:3306/Mapamundi
|
||||
jdbc.url = jdbc:mysql://192.168.1.36:3306/Mapamundi
|
||||
jdbc.usuario = root
|
||||
jdbc.password = mysql_123
|
||||
|
||||
@ -1,4 +0,0 @@
|
||||
Manifest-Version: 1.0
|
||||
Build-Jdk-Spec: 25
|
||||
Created-By: Maven Integration for Eclipse
|
||||
|
||||
@ -1,7 +0,0 @@
|
||||
#Generated by Maven Integration for Eclipse
|
||||
#Mon Nov 03 10:44:08 CET 2025
|
||||
artifactId=aadd_act2_3
|
||||
groupId=aadd_act2_3
|
||||
m2e.projectLocation=C\:\\Users\\ineva\\INM\\Personal\\Trabajo\\00-Educaci\u00F3n - CM\\10-Curso 2025-2026\\02-Acceso de datos -DAM2\\workspace\\aadd_act2_3
|
||||
m2e.projectName=aadd_act2_3
|
||||
version=0.0.1-SNAPSHOT
|
||||
@ -1,6 +0,0 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>aadd_act2_3</groupId>
|
||||
<artifactId>aadd_act2_3</artifactId>
|
||||
<version>0.0.1-SNAPSHOT</version>
|
||||
</project>
|
||||
@ -1,5 +0,0 @@
|
||||
# Parámetros de conexión a la base de datos MapaMundi en SGDB MySQL
|
||||
jdbc.driver = com.mysql.cj.jdbc.Driver
|
||||
jdbc.url = jdbc:mysql://192.168.1.35:3306/Mapamundi
|
||||
jdbc.usuario = root
|
||||
jdbc.password = mysql_123
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Loading…
Reference in New Issue
Block a user