From 8ece2e69251df0616dad09f2a5ad1c61810fb653 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Isidoro=20Nevares=20Mart=C3=ADn?= Date: Wed, 14 Jan 2026 22:25:27 +0100 Subject: [PATCH] commit inicial --- .classpath | 41 ++++++++ .gitignore | 3 + .project | 23 +++++ .settings/org.eclipse.core.resources.prefs | 2 + .settings/org.eclipse.jdt.core.prefs | 13 +++ .settings/org.eclipse.m2e.core.prefs | 4 + pom.xml | 40 ++++++++ .../es/palomafp/aadd/inm/AppMapaMundi.java | 89 ++++++++++++++++++ .../palomafp/aadd/inm/dao/IContinenteDAO.java | 23 +++++ .../es/palomafp/aadd/inm/dao/IPaisDAO.java | 22 +++++ .../inm/dao/hbm/ContinenteDaoHibernate.java | 52 +++++++++++ .../aadd/inm/dao/hbm/PaisDaoHibernate.java | 56 +++++++++++ .../aadd/inm/dao/jpa/ContinenteDaoJPA.java | 90 ++++++++++++++++++ .../palomafp/aadd/inm/dao/jpa/PaisDaoJPA.java | 93 +++++++++++++++++++ .../inm/gestor/GestorEntityManagerJPA.java | 41 ++++++++ .../inm/gestor/GestorSesionesHibernate.java | 46 +++++++++ .../es/palomafp/aadd/inm/vo/Continente.java | 48 ++++++++++ .../java/es/palomafp/aadd/inm/vo/Pais.java | 75 +++++++++++++++ src/main/resources/META-INF/persistence.xml | 30 ++++++ src/main/resources/hibernate.cfg.xml | 26 ++++++ 20 files changed, 817 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 .settings/org.eclipse.core.resources.prefs create mode 100644 .settings/org.eclipse.jdt.core.prefs create mode 100644 .settings/org.eclipse.m2e.core.prefs create mode 100644 pom.xml create mode 100644 src/main/java/es/palomafp/aadd/inm/AppMapaMundi.java create mode 100644 src/main/java/es/palomafp/aadd/inm/dao/IContinenteDAO.java create mode 100644 src/main/java/es/palomafp/aadd/inm/dao/IPaisDAO.java create mode 100644 src/main/java/es/palomafp/aadd/inm/dao/hbm/ContinenteDaoHibernate.java create mode 100644 src/main/java/es/palomafp/aadd/inm/dao/hbm/PaisDaoHibernate.java create mode 100644 src/main/java/es/palomafp/aadd/inm/dao/jpa/ContinenteDaoJPA.java create mode 100644 src/main/java/es/palomafp/aadd/inm/dao/jpa/PaisDaoJPA.java create mode 100644 src/main/java/es/palomafp/aadd/inm/gestor/GestorEntityManagerJPA.java create mode 100644 src/main/java/es/palomafp/aadd/inm/gestor/GestorSesionesHibernate.java create mode 100644 src/main/java/es/palomafp/aadd/inm/vo/Continente.java create mode 100644 src/main/java/es/palomafp/aadd/inm/vo/Pais.java create mode 100644 src/main/resources/META-INF/persistence.xml create mode 100644 src/main/resources/hibernate.cfg.xml diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..d863192 --- /dev/null +++ b/.classpath @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..93e00af --- /dev/null +++ b/.gitignore @@ -0,0 +1,3 @@ +/bin/ +*.class +/target/ diff --git a/.project b/.project new file mode 100644 index 0000000..d6461e3 --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + aadd_act3_8 + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.jdt.core.javanature + org.eclipse.m2e.core.maven2Nature + + diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000..99f26c0 --- /dev/null +++ b/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +encoding/=UTF-8 diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000..bfac099 --- /dev/null +++ b/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,13 @@ +eclipse.preferences.version=1 +org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate +org.eclipse.jdt.core.compiler.codegen.targetPlatform=24 +org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve +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=warning +org.eclipse.jdt.core.compiler.release=disabled +org.eclipse.jdt.core.compiler.source=24 diff --git a/.settings/org.eclipse.m2e.core.prefs b/.settings/org.eclipse.m2e.core.prefs new file mode 100644 index 0000000..f897a7f --- /dev/null +++ b/.settings/org.eclipse.m2e.core.prefs @@ -0,0 +1,4 @@ +activeProfiles= +eclipse.preferences.version=1 +resolveWorkspaceProjects=true +version=1 diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..0ba1a51 --- /dev/null +++ b/pom.xml @@ -0,0 +1,40 @@ + + 4.0.0 + aadd_act3_8 + aadd_act3_8 + 0.0.1-SNAPSHOT + + + + + + org.hibernate.orm + hibernate-core + 7.1.14.Final + + + + + jakarta.persistence + jakarta.persistence-api + 3.2.0 + + + + + com.mysql + mysql-connector-j + 9.5.0 + + + + + org.postgresql + postgresql + 42.7.8 + compile + + + + + \ No newline at end of file diff --git a/src/main/java/es/palomafp/aadd/inm/AppMapaMundi.java b/src/main/java/es/palomafp/aadd/inm/AppMapaMundi.java new file mode 100644 index 0000000..e3edf46 --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/AppMapaMundi.java @@ -0,0 +1,89 @@ +package es.palomafp.aadd.inm; + +import java.util.List; + +import es.palomafp.aadd.inm.dao.IContinenteDAO; +import es.palomafp.aadd.inm.dao.IPaisDAO; +import es.palomafp.aadd.inm.dao.hbm.ContinenteDaoHibernate; +import es.palomafp.aadd.inm.dao.hbm.PaisDaoHibernate; +import es.palomafp.aadd.inm.dao.jpa.ContinenteDaoJPA; +import es.palomafp.aadd.inm.dao.jpa.PaisDaoJPA; +import es.palomafp.aadd.inm.gestor.GestorEntityManagerJPA; +import es.palomafp.aadd.inm.vo.Continente; +import es.palomafp.aadd.inm.vo.Pais; + +/** + * + * GestorMapaMundi: Clase que accede a información de la BBDD MapaMundi. + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 26 sept 2025 + */ + +public class AppMapaMundi { + + public static void main(String[] args) { + AppMapaMundi app = new AppMapaMundi(); + + // Generar la estructura de la BBDD en PostgreSQL + // GestorEntityManagerJPA.getEntityManager(); + + app.migrarMapaMundiDeMySQLaPostgreSQL(); + } + + private void migrarMapaMundiDeMySQLaPostgreSQL() { + // Se migra primeramente la información de los continentes + migrarContinentes(); + + // A continuación, se migra la información de los países + migrarPaises(); + } + + private void migrarContinentes() { + // Obtener la lista de continentes desde la BBDD MySQL (Hibernate) + IContinenteDAO iContinenteDAO = new ContinenteDaoHibernate(); + List listadoContinentes = iContinenteDAO.obtenerListaContientes(); + + if (listadoContinentes != null) { + + // Guardar la lista de continentes en la BBDD PostgreSQL + iContinenteDAO = new ContinenteDaoJPA(); + + for (Continente continente : listadoContinentes) { + // Comprobar si el continente ya existe en la BBDD PostgreSQL + Continente continenteODB = iContinenteDAO.obtenerContinentePorID(continente.getCodigo()); + + // Si no existe, crearlo; si existe, actualizarlo + if (continenteODB == null) { + iContinenteDAO.crearContinente(continente); + } else { + iContinenteDAO.actualizarContinente(continente); + } + } + } + } + private void migrarPaises() { + // Obtener la lista de Paises desde la BBDD MySQL (Hibernate) + IPaisDAO iPaisDAO = new PaisDaoHibernate(); + List listaPaises = iPaisDAO.obtenerListaPaises(); + + if (listaPaises != null) { + + // Guardar la lista de Paises en la BBDD PostgreSQL + iPaisDAO = new PaisDaoJPA(); + + for (Pais pais : listaPaises) { + // Comprobar si el país ya existe en la BBDD PostgreSQL + Pais paisODB = iPaisDAO.obtenerPaisPorID(pais.getIdentificador()); + + // Si no existe, crearlo; si existe, actualizarlo + if (paisODB == null) { + iPaisDAO.crearPais(pais); + } else { + iPaisDAO.actualizarPais(pais); + } + } + } + } + + } \ No newline at end of file diff --git a/src/main/java/es/palomafp/aadd/inm/dao/IContinenteDAO.java b/src/main/java/es/palomafp/aadd/inm/dao/IContinenteDAO.java new file mode 100644 index 0000000..aae357b --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/dao/IContinenteDAO.java @@ -0,0 +1,23 @@ +package es.palomafp.aadd.inm.dao; + +import java.util.List; + +import es.palomafp.aadd.inm.vo.Continente; + +/** + * + * IContinenteDAO: Interfaz que define las operaciones de acceso a datos para + * Continente. + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 31 oct 2025 + */ +public interface IContinenteDAO { + Continente obtenerContinentePorID(String codigo); + + List obtenerListaContientes(); + + void crearContinente(Continente continente); + + void actualizarContinente(Continente continente); +} diff --git a/src/main/java/es/palomafp/aadd/inm/dao/IPaisDAO.java b/src/main/java/es/palomafp/aadd/inm/dao/IPaisDAO.java new file mode 100644 index 0000000..d0cf906 --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/dao/IPaisDAO.java @@ -0,0 +1,22 @@ +package es.palomafp.aadd.inm.dao; + +import java.util.List; + +import es.palomafp.aadd.inm.vo.Pais; + +/** + * + * IPaisDAO: Interfaz que define las operaciones de acceso a datos para País. + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 31 oct 2025 + */ +public interface IPaisDAO { + Pais obtenerPaisPorID(int identificador); + + List obtenerListaPaises(); + + void crearPais(Pais pais); + + void actualizarPais(Pais pais); +} diff --git a/src/main/java/es/palomafp/aadd/inm/dao/hbm/ContinenteDaoHibernate.java b/src/main/java/es/palomafp/aadd/inm/dao/hbm/ContinenteDaoHibernate.java new file mode 100644 index 0000000..9ea065d --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/dao/hbm/ContinenteDaoHibernate.java @@ -0,0 +1,52 @@ +package es.palomafp.aadd.inm.dao.hbm; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.query.SelectionQuery; + +import es.palomafp.aadd.inm.dao.IContinenteDAO; +import es.palomafp.aadd.inm.gestor.GestorSesionesHibernate; +import es.palomafp.aadd.inm.vo.Continente; + +/** + * + * ContinenteDaoJDBC: Clase que implementa el interfaz IContinenteDAO + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 31 oct 2025 + */ +public class ContinenteDaoHibernate implements IContinenteDAO { + + @Override + public List obtenerListaContientes() { + List listaContinentes = null; + String sentenciaHQL = """ + SELECT c + FROM Continente c + """; + // try con recursos "cerrables": Session + try (Session sesion = GestorSesionesHibernate.getSession();) { + SelectionQuery sentenciaConsulta = sesion.createSelectionQuery(sentenciaHQL, Continente.class); + listaContinentes = sentenciaConsulta.getResultList(); + + } catch (Exception e) { + e.printStackTrace(); + } + return listaContinentes; + + } + + @Override + public void crearContinente(Continente continente) { + } + + @Override + public Continente obtenerContinentePorID(String codigo) { + return null; + } + + @Override + public void actualizarContinente(Continente continente) { + } +} diff --git a/src/main/java/es/palomafp/aadd/inm/dao/hbm/PaisDaoHibernate.java b/src/main/java/es/palomafp/aadd/inm/dao/hbm/PaisDaoHibernate.java new file mode 100644 index 0000000..bd5c945 --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/dao/hbm/PaisDaoHibernate.java @@ -0,0 +1,56 @@ +package es.palomafp.aadd.inm.dao.hbm; + +import java.util.List; + +import org.hibernate.Session; +import org.hibernate.query.SelectionQuery; + +import es.palomafp.aadd.inm.dao.IPaisDAO; +import es.palomafp.aadd.inm.gestor.GestorSesionesHibernate; +import es.palomafp.aadd.inm.vo.Pais; + +/** + * + * PaisDaoJDBC: Clase que implementa el interfaz IPaisDAO + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 31 oct 2025 + */ +public class PaisDaoHibernate implements IPaisDAO { + + @Override + public List obtenerListaPaises() { + List listaPaises = null; + String sentenciaHQL = """ + SELECT p + FROM Pais p + """; + + // try con recursos "cerrables": Session + try (Session sesion = GestorSesionesHibernate.getSession();) { + + SelectionQuery sentenciaConsulta = sesion.createSelectionQuery(sentenciaHQL, Pais.class); + listaPaises = sentenciaConsulta.getResultList(); + + } catch (Exception e) { + e.printStackTrace(); + } + return listaPaises; + } + + @Override + public void actualizarPais(Pais pais) { + } + + @Override + public Pais obtenerPaisPorID(int identificador) { + return null; + } + + @Override + public void crearPais(Pais pais) { + // TODO Auto-generated method stub + + } + +} diff --git a/src/main/java/es/palomafp/aadd/inm/dao/jpa/ContinenteDaoJPA.java b/src/main/java/es/palomafp/aadd/inm/dao/jpa/ContinenteDaoJPA.java new file mode 100644 index 0000000..eea23f2 --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/dao/jpa/ContinenteDaoJPA.java @@ -0,0 +1,90 @@ +package es.palomafp.aadd.inm.dao.jpa; + +import java.util.List; + +import es.palomafp.aadd.inm.dao.IContinenteDAO; +import es.palomafp.aadd.inm.gestor.GestorEntityManagerJPA; +import es.palomafp.aadd.inm.vo.Continente; +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityTransaction; + +/** + * + * ContinenteDaoJDBC: Clase que implementa el interfaz IContinenteDAO + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 31 oct 2025 + */ +public class ContinenteDaoJPA implements IContinenteDAO { + + @Override + public Continente obtenerContinentePorID(String codigo) { + Continente continente = null; + + // try con recursos "cerrables": Session + try (EntityManager gestorEntidades = GestorEntityManagerJPA.getEntityManager()) { + continente = gestorEntidades.find(Continente.class, codigo); + } catch (Exception e) { + e.printStackTrace(); + } + return continente; + } + + @Override + public void crearContinente(Continente continente) { + EntityManager gestorEntidades= null; + EntityTransaction transaccion = null; + + try { + gestorEntidades = GestorEntityManagerJPA.getEntityManager(); + transaccion = gestorEntidades.getTransaction(); + transaccion .begin(); + + gestorEntidades.persist(continente); + + transaccion.commit(); + } catch (Exception e) { + if (transaccion != null && transaccion.isActive()) { + transaccion.rollback(); + } + e.printStackTrace(); + } finally { + if (gestorEntidades != null) { + gestorEntidades.close(); + } + } + } + + @Override + public void actualizarContinente(Continente continente) { + EntityManager gestorEntidades= null; + EntityTransaction transaccion = null; + + try { + gestorEntidades = GestorEntityManagerJPA.getEntityManager(); + transaccion = gestorEntidades.getTransaction(); + transaccion .begin(); + + if (!gestorEntidades.contains(continente)) + gestorEntidades.merge(continente); + + transaccion.commit(); + } catch (Exception e) { + if (transaccion != null && transaccion.isActive()) { + transaccion.rollback(); + } + e.printStackTrace(); + } finally { + if (gestorEntidades != null) { + gestorEntidades.close(); + } + } + } + + @Override + public List obtenerListaContientes() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/main/java/es/palomafp/aadd/inm/dao/jpa/PaisDaoJPA.java b/src/main/java/es/palomafp/aadd/inm/dao/jpa/PaisDaoJPA.java new file mode 100644 index 0000000..1947553 --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/dao/jpa/PaisDaoJPA.java @@ -0,0 +1,93 @@ +package es.palomafp.aadd.inm.dao.jpa; + +import java.util.List; + +import es.palomafp.aadd.inm.dao.IPaisDAO; +import es.palomafp.aadd.inm.gestor.GestorEntityManagerJPA; +import es.palomafp.aadd.inm.vo.Pais; +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityTransaction; + +/** + * + * PaisDaoJPA: Clase que implementa el interfaz IPaisDAO + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 31 oct 2025 + */ +public class PaisDaoJPA implements IPaisDAO { + + @Override + public Pais obtenerPaisPorID(int identificador) { + Pais pais = null; + + // try con recursos "cerrables": Session + try (EntityManager gestorEntidades = GestorEntityManagerJPA.getEntityManager()) { + pais = gestorEntidades.find(Pais.class, identificador); + } catch (Exception e) { + e.printStackTrace(); + } + return pais; + + } + + + @Override + public void crearPais(Pais pais) { + EntityManager gestorEntidades = null; + EntityTransaction transaccion = null; + + try { + gestorEntidades = GestorEntityManagerJPA.getEntityManager(); + transaccion = gestorEntidades.getTransaction(); + transaccion.begin(); + + gestorEntidades.persist(pais); + + transaccion.commit(); + } catch (Exception e) { + if (transaccion != null && transaccion.isActive()) { + transaccion.rollback(); + } + e.printStackTrace(); + } finally { + if (gestorEntidades != null) { + gestorEntidades.close(); + } + } + + } + + @Override + public void actualizarPais(Pais pais) { + EntityManager gestorEntidades = null; + EntityTransaction transaccion = null; + + try { + gestorEntidades = GestorEntityManagerJPA.getEntityManager(); + transaccion = gestorEntidades.getTransaction(); + transaccion.begin(); + + if (!gestorEntidades.contains(pais)) + gestorEntidades.merge(pais); + + transaccion.commit(); + } catch (Exception e) { + if (transaccion != null && transaccion.isActive()) { + transaccion.rollback(); + } + e.printStackTrace(); + } finally { + if (gestorEntidades != null) { + gestorEntidades.close(); + } + } + } + + @Override + public List obtenerListaPaises() { + // TODO Auto-generated method stub + return null; + } + +} diff --git a/src/main/java/es/palomafp/aadd/inm/gestor/GestorEntityManagerJPA.java b/src/main/java/es/palomafp/aadd/inm/gestor/GestorEntityManagerJPA.java new file mode 100644 index 0000000..77db1a5 --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/gestor/GestorEntityManagerJPA.java @@ -0,0 +1,41 @@ +package es.palomafp.aadd.inm.gestor; + +import jakarta.persistence.EntityManager; +import jakarta.persistence.EntityManagerFactory; +import jakarta.persistence.Persistence; + +/** + * + * GestorEntityManagerJPA: Clase que realiza la gestión de EntityManagers de JPA. + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 4 dic 2025 + * + * + */ + +public class GestorEntityManagerJPA { + private static EntityManagerFactory entityManagerFactory = null; + + private GestorEntityManagerJPA() { // Constructor privado para evitar instanciación + } + + // Carga la configuración desde META-INF/persistence.xml + static { + try { + entityManagerFactory = Persistence.createEntityManagerFactory("UP_MAPAMUNDI_POSTGRESQL"); + } catch (Throwable ex) { + System.err.println("Error en EntityManagerFactory: " + ex); + throw new ExceptionInInitializerError(ex); + } + } + + public static EntityManager getEntityManager() { + return entityManagerFactory.createEntityManager(); + } + + + public static void closeEntityManagerFactory() { + entityManagerFactory.close(); + } +} diff --git a/src/main/java/es/palomafp/aadd/inm/gestor/GestorSesionesHibernate.java b/src/main/java/es/palomafp/aadd/inm/gestor/GestorSesionesHibernate.java new file mode 100644 index 0000000..b62ada4 --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/gestor/GestorSesionesHibernate.java @@ -0,0 +1,46 @@ +package es.palomafp.aadd.inm.gestor; + +import org.hibernate.Session; +import org.hibernate.SessionFactory; +import org.hibernate.cfg.Configuration; + +/** + * + * GestorSesionesHibernate: Clase que realiza .... + * + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 4 dic 2025 + * + * + */ + +public class GestorSesionesHibernate { + private static SessionFactory sessionFactory = null; + + private GestorSesionesHibernate() {// Constructor privado para evitar instanciación + } + + // Carga la configuración desde hibernate.cfg.xml + static { + try { + sessionFactory = new Configuration().configure().buildSessionFactory(); + } catch (Throwable ex) { + System.err.println("Error en SessionFactory: " + ex); + throw new ExceptionInInitializerError(ex); + } + } + + public static Session getSession() { + return sessionFactory.openSession(); + } + + public static Session getCurrentSession() { + return sessionFactory.getCurrentSession(); + } + + public static void cerrarFactoria() { + if (sessionFactory != null) { + sessionFactory.close(); + } + } +} diff --git a/src/main/java/es/palomafp/aadd/inm/vo/Continente.java b/src/main/java/es/palomafp/aadd/inm/vo/Continente.java new file mode 100644 index 0000000..8de197d --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/vo/Continente.java @@ -0,0 +1,48 @@ +package es.palomafp.aadd.inm.vo; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.Id; +import jakarta.persistence.Table; + +/** + * + * Continente: Clase que se usa para mapear la tabla de continentes + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 5 dic 2025 + * + * + */ + +@Entity +@Table(name="T_CONTINENTE") +public class Continente { + @Id + @Column(name="codigo", columnDefinition = "char(2)") + private String codigo; + + @Column(name="nombre_continente", length=30, nullable=true) + private String nombreContinente; + + public String getCodigo() { + return codigo; + } + + public void setCodigo(String codigo) { + this.codigo = codigo; + } + + public String getNombreContinente() { + return nombreContinente; + } + + public void setNombreContinente(String nombreContinente) { + this.nombreContinente = nombreContinente; + } + + @Override + public String toString() { + return "Continente [codigo=" + codigo + ", nombreContinente=" + nombreContinente + "]\n"; + } +} + diff --git a/src/main/java/es/palomafp/aadd/inm/vo/Pais.java b/src/main/java/es/palomafp/aadd/inm/vo/Pais.java new file mode 100644 index 0000000..b1eece8 --- /dev/null +++ b/src/main/java/es/palomafp/aadd/inm/vo/Pais.java @@ -0,0 +1,75 @@ +package es.palomafp.aadd.inm.vo; + +import jakarta.persistence.Column; +import jakarta.persistence.Entity; +import jakarta.persistence.FetchType; +import jakarta.persistence.Id; +import jakarta.persistence.JoinColumn; +import jakarta.persistence.ManyToOne; +import jakarta.persistence.Table; + +/** + * + * Continente: Clase que se usa para mapear la tabla de Países + * @author Isidoro Nevares Martín - IES Virgen de la Paloma + * @date 5 dic 2025 + * + * + */ + +@Entity +@Table(name="T_PAIS") +public class Pais { + @Id + @Column(name="identificador") + private int identificador; + + @Column(name="nombre_pais", length=50) + private String nombrePais; + + @Column(name="capital", length=20) + private String capital; + + @ManyToOne(fetch = FetchType.EAGER) + @JoinColumn(name="cod_continente") + private Continente continente; + + public int getIdentificador() { + return identificador; + } + + public void setIdentificador(int identificador) { + this.identificador = identificador; + } + + public String getNombrePais() { + return nombrePais; + } + + public void setNombrePais(String nombrePais) { + this.nombrePais = nombrePais; + } + + public String getCapital() { + return capital; + } + + public void setCapital(String capital) { + this.capital = capital; + } + + public Continente getContinente() { + return continente; + } + + public void setContinente(Continente continente) { + this.continente = continente; + } + + @Override + public String toString() { + return "Pais [identificador=" + identificador + ", nombrePais=" + nombrePais + ", capital=" + capital + + ", continente=" + continente + "]\n"; + } +} + diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml new file mode 100644 index 0000000..67111f0 --- /dev/null +++ b/src/main/resources/META-INF/persistence.xml @@ -0,0 +1,30 @@ + + + + + + org.hibernate.jpa.HibernatePersistenceProvider + + + es.palomafp.aadd.inm.vo.Continente + es.palomafp.aadd.inm.vo.Pais + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml new file mode 100644 index 0000000..4825c97 --- /dev/null +++ b/src/main/resources/hibernate.cfg.xml @@ -0,0 +1,26 @@ + + + + + jdbc:mysql://192.168.1.36:3306/Mapa_Mundi + com.mysql.cj.jdbc.Driver + + org.hibernate.dialect.MySQLDialect + + root + mysql_123 + + + none + false + false + + + + + + + + \ No newline at end of file