diff --git a/.classpath b/.classpath
index 51a6fca..89051b0 100644
--- a/.classpath
+++ b/.classpath
@@ -37,5 +37,22 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/.project b/.project
index 03a3060..8bf77c6 100644
--- a/.project
+++ b/.project
@@ -20,4 +20,15 @@
org.eclipse.jdt.core.javanature
org.eclipse.m2e.core.maven2Nature
+
+
+ 1771843084632
+
+ 30
+
+ org.eclipse.core.resources.regexFilterMatcher
+ node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__
+
+
+
diff --git a/.settings/org.eclipse.core.resources.prefs b/.settings/org.eclipse.core.resources.prefs
deleted file mode 100644
index 99f26c0..0000000
--- a/.settings/org.eclipse.core.resources.prefs
+++ /dev/null
@@ -1,2 +0,0 @@
-eclipse.preferences.version=1
-encoding/=UTF-8
diff --git a/.settings/org.eclipse.jdt.apt.core.prefs b/.settings/org.eclipse.jdt.apt.core.prefs
new file mode 100644
index 0000000..d4313d4
--- /dev/null
+++ b/.settings/org.eclipse.jdt.apt.core.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.apt.aptEnabled=false
diff --git a/.settings/org.eclipse.jdt.core.prefs b/.settings/org.eclipse.jdt.core.prefs
index bfac099..dc671b5 100644
--- a/.settings/org.eclipse.jdt.core.prefs
+++ b/.settings/org.eclipse.jdt.core.prefs
@@ -9,5 +9,6 @@ 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.processAnnotations=disabled
org.eclipse.jdt.core.compiler.release=disabled
org.eclipse.jdt.core.compiler.source=24
diff --git a/ficheros/formacion-Instituto.csv b/ficheros/formacion-Instituto.csv
index 4dfe395..c0051d4 100644
--- a/ficheros/formacion-Instituto.csv
+++ b/ficheros/formacion-Instituto.csv
@@ -1,9 +1,12 @@
-a_tratar,cod_formacion, cod_instituto, anyo
+a_tratar,id_formacion, id_instituto, anyo
S, 1, 1, 2021
S, 1, 2, 2022
S, 2, 1, 2022
+N, 3, 2, 2022
+S, 8, 5, 2020
S, 2, 2, 2021
N, 2, 3, 2023
S, 3, 1, 2024
+S, 5, 9, 2020
S, 3, 3, 2024
S, 4, 3, 2020
\ No newline at end of file
diff --git a/src/main/java/org/comunidadmadrid/fp/dam2/ClasePrincipal.java b/src/main/java/org/comunidadmadrid/fp/dam2/ClasePrincipal.java
index 2750811..aea78ea 100644
--- a/src/main/java/org/comunidadmadrid/fp/dam2/ClasePrincipal.java
+++ b/src/main/java/org/comunidadmadrid/fp/dam2/ClasePrincipal.java
@@ -8,27 +8,24 @@ import java.util.List;
import org.comunidadmadrid.fp.dam2.dao.ICicloFormativoDAO;
import org.comunidadmadrid.fp.dam2.dao.IFormacionDAO;
import org.comunidadmadrid.fp.dam2.dao.IInstitutoDAO;
-import org.comunidadmadrid.fp.dam2.dao.IInstitutoFormacionDAO;
import org.comunidadmadrid.fp.dam2.dao.hibernate.CicloFormativoDaoHibernate;
import org.comunidadmadrid.fp.dam2.dao.hibernate.FormacionDaoHibernate;
-import org.comunidadmadrid.fp.dam2.dao.hibernate.InstitutoFormacionDaoHibernate;
import org.comunidadmadrid.fp.dam2.dao.jdbc.CicloFormativoDaoJDBC;
import org.comunidadmadrid.fp.dam2.dao.jpa.InstitutoDaoJPA;
import org.comunidadmadrid.fp.dam2.dao.mongodb.InstitutoDaoMongoDB;
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
import org.comunidadmadrid.fp.dam2.gestores.GestorFicheroConfiguracion;
+import org.comunidadmadrid.fp.dam2.gestores.GestorSesionHibernate;
import org.comunidadmadrid.fp.dam2.procesamiento.ProcesadorDatos;
import org.comunidadmadrid.fp.dam2.utilidades.GestorURLs;
import org.comunidadmadrid.fp.dam2.vo.CicloFormativo;
import org.comunidadmadrid.fp.dam2.vo.Formacion;
import org.comunidadmadrid.fp.dam2.vo.Instituto;
-import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
-/*
-Organización: Virgen de la Paloma
-Programador: Isidoro Nevares MartÃn
-Fecha: 1 mar 2025
-*/
+/**
+ * Organización: Virgen de la Paloma Programador: Isidoro Nevares MartÃn Fecha:
+ * 26 febrero 2026
+ */
public class ClasePrincipal {
/**
@@ -36,7 +33,8 @@ public class ClasePrincipal {
*/
public static void main(String[] args) {
ClasePrincipal appPrincipal = new ClasePrincipal();
- // GestorSesionHibernate.getSession();
+
+ GestorSesionHibernate.getSession();
try {
appPrincipal.tratarCiclosFormativos();
@@ -168,23 +166,8 @@ public class ClasePrincipal {
*/
private void tratarInstitutoFormacion() throws FormacionException {
- // Se obtiene la lista de Instituto Formación a partir de un fichero en CSV
- String rutaCSVInstitutoFormacion = GestorFicheroConfiguracion.obtenerValor("ruta.csv");
ProcesadorDatos procesador = new ProcesadorDatos();
- List listaInstitutosFormaciones = procesador
- .obtenerInstitutoFormacionDeFicheroCSV(rutaCSVInstitutoFormacion);
-
- if (listaInstitutosFormaciones != null && listaInstitutosFormaciones.size() > 0) {
- // Se prepara el AADD de InstitutoFormacion para que se realice mediante
- // Hibernate
- IInstitutoFormacionDAO iInstitutoFormacionDAO = new InstitutoFormacionDaoHibernate();
-
- for (InstitutoFormacion institutoFormacion : listaInstitutosFormaciones) {
-
- System.out.println(institutoFormacion);
- iInstitutoFormacionDAO.insertarInstitutoFormacion(institutoFormacion);
- }
- }
+ procesador.crearFormacionesInstitutoCSV();
}
}
diff --git a/src/main/java/org/comunidadmadrid/fp/dam2/dao/IFormacionDAO.java b/src/main/java/org/comunidadmadrid/fp/dam2/dao/IFormacionDAO.java
index 912ed0e..0f496cb 100644
--- a/src/main/java/org/comunidadmadrid/fp/dam2/dao/IFormacionDAO.java
+++ b/src/main/java/org/comunidadmadrid/fp/dam2/dao/IFormacionDAO.java
@@ -5,6 +5,7 @@ package org.comunidadmadrid.fp.dam2.dao;
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
import org.comunidadmadrid.fp.dam2.vo.Formacion;
+import org.comunidadmadrid.fp.dam2.vo.Instituto;
/*
Organización: Virgen de la Paloma
@@ -12,6 +13,13 @@ Programador: Isidoro Nevares MartÃn
Fecha: 1 mar 2025
*/
public interface IFormacionDAO {
+ /**
+ *
+ * @param identificador
+ * @return
+ * @throws FormacionException
+ */
+ Formacion obtenerFormacionPorID(int identificador) throws FormacionException;
/**
*
* @param formacion
diff --git a/src/main/java/org/comunidadmadrid/fp/dam2/dao/IInstitutoFormacionDAO.java b/src/main/java/org/comunidadmadrid/fp/dam2/dao/IInstitutoFormacionDAO.java
index 3790fb1..560bd43 100644
--- a/src/main/java/org/comunidadmadrid/fp/dam2/dao/IInstitutoFormacionDAO.java
+++ b/src/main/java/org/comunidadmadrid/fp/dam2/dao/IInstitutoFormacionDAO.java
@@ -5,6 +5,7 @@ package org.comunidadmadrid.fp.dam2.dao;
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
+import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion.InstitutoFormacionID;
/*
Organización: Virgen de la Paloma
@@ -18,4 +19,11 @@ public interface IInstitutoFormacionDAO {
* @throws FormacionException
*/
void insertarInstitutoFormacion(InstitutoFormacion institutoFormacion) throws FormacionException;
+
+ /**
+ *
+ * @param institutoFormacion
+ * @throws FormacionException
+ */
+ InstitutoFormacion obtenerInstitutoFormacionPorID(InstitutoFormacionID identificador) throws FormacionException;
}
diff --git a/src/main/java/org/comunidadmadrid/fp/dam2/dao/hibernate/FormacionDaoHibernate.java b/src/main/java/org/comunidadmadrid/fp/dam2/dao/hibernate/FormacionDaoHibernate.java
index 8c18784..beb9e65 100644
--- a/src/main/java/org/comunidadmadrid/fp/dam2/dao/hibernate/FormacionDaoHibernate.java
+++ b/src/main/java/org/comunidadmadrid/fp/dam2/dao/hibernate/FormacionDaoHibernate.java
@@ -7,6 +7,7 @@ import org.comunidadmadrid.fp.dam2.dao.IFormacionDAO;
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
import org.comunidadmadrid.fp.dam2.gestores.GestorSesionHibernate;
import org.comunidadmadrid.fp.dam2.vo.Formacion;
+import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
@@ -42,4 +43,16 @@ public class FormacionDaoHibernate implements IFormacionDAO{
}
+
+ @Override
+ public Formacion obtenerFormacionPorID(int identificador) throws FormacionException {
+ Formacion formacion = null;
+ // try con recursos "cerrables": Session
+ try (Session sesion = GestorSesionHibernate.getSession();) {
+ formacion = sesion.find(Formacion.class, identificador);
+ } catch (HibernateException e) {
+ throw new FormacionException(e, FormacionException.ERROR_CONSULTA, getClass());
+ }
+ return formacion;
+ }
}
diff --git a/src/main/java/org/comunidadmadrid/fp/dam2/dao/hibernate/InstitutoFormacionDaoHibernate.java b/src/main/java/org/comunidadmadrid/fp/dam2/dao/hibernate/InstitutoFormacionDaoHibernate.java
index ad2615e..401031f 100644
--- a/src/main/java/org/comunidadmadrid/fp/dam2/dao/hibernate/InstitutoFormacionDaoHibernate.java
+++ b/src/main/java/org/comunidadmadrid/fp/dam2/dao/hibernate/InstitutoFormacionDaoHibernate.java
@@ -7,6 +7,8 @@ import org.comunidadmadrid.fp.dam2.dao.IInstitutoFormacionDAO;
import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
import org.comunidadmadrid.fp.dam2.gestores.GestorSesionHibernate;
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
+import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion.InstitutoFormacionID;
+import org.hibernate.HibernateException;
import org.hibernate.Session;
import org.hibernate.Transaction;
@@ -40,4 +42,19 @@ public class InstitutoFormacionDaoHibernate implements IInstitutoFormacionDAO{
}
}
+ @Override
+ public InstitutoFormacion obtenerInstitutoFormacionPorID(InstitutoFormacionID identificador)
+ throws FormacionException {
+ InstitutoFormacion institutoFormacion =null;
+
+ // try con recursos "cerrables": Session
+ try (Session sesion = GestorSesionHibernate.getSession();) {
+ institutoFormacion = sesion.find(InstitutoFormacion.class, identificador);
+ } catch (HibernateException e) {
+ throw new FormacionException(e, FormacionException.ERROR_CONSULTA, getClass());
+ }
+
+ return institutoFormacion;
+ }
+
}
diff --git a/src/main/java/org/comunidadmadrid/fp/dam2/dao/jpa/InstitutoDaoJPA.java b/src/main/java/org/comunidadmadrid/fp/dam2/dao/jpa/InstitutoDaoJPA.java
index 835d0bd..a8c26c3 100644
--- a/src/main/java/org/comunidadmadrid/fp/dam2/dao/jpa/InstitutoDaoJPA.java
+++ b/src/main/java/org/comunidadmadrid/fp/dam2/dao/jpa/InstitutoDaoJPA.java
@@ -21,23 +21,17 @@ Fecha: 1 mar 2025
public class InstitutoDaoJPA implements IInstitutoDAO {
@Override
public Instituto obtenerInstitutoPorID(int identificador) throws FormacionException {
- Instituto instituto =null;
+ Instituto instituto = null;
- EntityManager gestorEntidades = null;
- try {
- gestorEntidades= GestorEntityManagerJPA.getEntityManager();
+ try (EntityManager gestorEntidades = GestorEntityManagerJPA.getEntityManager()) {
- instituto=gestorEntidades.find(Instituto.class, identificador);
- } catch (Exception e) {
+ instituto = gestorEntidades.find(Instituto.class, identificador);
+
+ } catch (Exception e) {
throw new FormacionException(e, FormacionException.ERROR_CONSULTA, getClass());
- }
- finally {
- if(gestorEntidades!=null) {
- gestorEntidades.close();
- }
- }
+ }
- return instituto;
+ return instituto;
}
@Override
@@ -65,33 +59,32 @@ public class InstitutoDaoJPA implements IInstitutoDAO {
}
}
-
@Override
public void actualizarInstituto(Instituto instituto) throws FormacionException {
- EntityManager gestorEntidades = null;
+ EntityManager gestorEntidades = null;
EntityTransaction transaccion = null;
try {
- gestorEntidades= GestorEntityManagerJPA.getEntityManager();
- transaccion=gestorEntidades.getTransaction();
-
+ gestorEntidades = GestorEntityManagerJPA.getEntityManager();
+ transaccion = gestorEntidades.getTransaction();
+
// Inicia transacción
transaccion.begin();
-
+
// Para poder actulizarse ha de encontarse en el ámbito del entityManager
if (!gestorEntidades.contains(instituto))
gestorEntidades.merge(instituto);
-
+
// Confirma transacción
- transaccion.commit();
-
- } catch (Exception e) {
+ transaccion.commit();
+
+ } catch (Exception e) {
throw new FormacionException(e, FormacionException.ERROR_ACTUALIZACION, getClass());
- } finally {
- if(gestorEntidades!=null) {
- gestorEntidades.close();
- }
- }
+ } finally {
+ if (gestorEntidades != null) {
+ gestorEntidades.close();
+ }
+ }
}
diff --git a/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/FormacionXML.java b/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/FormacionXML.java
deleted file mode 100644
index 767e8f1..0000000
--- a/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/FormacionXML.java
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- *
- */
-package org.comunidadmadrid.fp.dam2.procesamiento;
-
-import com.fasterxml.jackson.annotation.JsonProperty;
-
-import tools.jackson.dataformat.xml.annotation.JacksonXmlProperty;
-
-/*
-Organización: Virgen de la Paloma
-Programador: Isidoro Nevares MartÃn
-Fecha: 1 mar 2025
-*/
-
-public class FormacionXML {
- @JacksonXmlProperty(isAttribute = true, localName = "id_formacion")
- private int identificador;
-
- @JacksonXmlProperty(isAttribute = true, localName = "formacion_distancia")
- private String formacionDistantica;
-
- @JsonProperty(value = "nombre_corto")
- private String nombreCorto;
-
- @JsonProperty(value = "cod_ciclo_formativo")
- private int codigoCicloFormativo;
-
- @JsonProperty(value = "es_formacion_stem")
- private int esFormacionSTEM;
-
- @JsonProperty(value = "informacion_adicional")
- private Object informacionAdicional;
-
- public int getIdentificador() {
- return identificador;
- }
-
- public void setIdentificador(int identificador) {
- this.identificador = identificador;
- }
-
- public String getFormacionDistantica() {
- return formacionDistantica;
- }
-
- public void setFormacionDistantica(String formacionDistantica) {
- this.formacionDistantica = formacionDistantica;
- }
-
- public String getNombreCorto() {
- return nombreCorto;
- }
-
- public void setNombreCorto(String nombreCorto) {
- this.nombreCorto = nombreCorto;
- }
-
- public int getCodigoCicloFormativo() {
- return codigoCicloFormativo;
- }
-
- public void setCodigoCicloFormativo(int codigoCicloFormativo) {
- this.codigoCicloFormativo = codigoCicloFormativo;
- }
-
- public int getEsFormacionSTEM() {
- return esFormacionSTEM;
- }
-
- public void setEsFormacionSTEM(int esFormacionSTEM) {
- this.esFormacionSTEM = esFormacionSTEM;
- }
-
- public Object getInformacionAdicional() {
- return informacionAdicional;
- }
-
- public void setInformacionAdicional(Object informacionAdicional) {
- this.informacionAdicional = informacionAdicional;
- }
-}
diff --git a/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/InstitutoFormacionCSV.java b/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/InstitutoFormacionCSV.java
deleted file mode 100644
index 5c7a1f6..0000000
--- a/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/InstitutoFormacionCSV.java
+++ /dev/null
@@ -1,64 +0,0 @@
-/**
- *
- */
-package org.comunidadmadrid.fp.dam2.procesamiento;
-
-import com.opencsv.bean.CsvBindByName;
-
-/**
-* Organización: Virgen de la Paloma
-* Programador: Isidoro Nevares MartÃn
-* Fecha: 26 marzo 2026
-*/
-public class InstitutoFormacionCSV {
- @CsvBindByName(column = "a_tratar")
- private String filaTratar;
-
- @CsvBindByName(column = "cod_instituto")
- private int codigoInstituto;
-
- @CsvBindByName(column = "cod_formacion")
- private int codigoFormacio;
-
- @CsvBindByName(column = "anyo")
- private int anyoAcademico;
-
- public String getFilaTratar() {
- return filaTratar;
- }
-
- public void setFilaTratar(String filaTratar) {
- this.filaTratar = filaTratar;
- }
-
- public int getCodigoInstituto() {
- return codigoInstituto;
- }
-
- public void setCodigoInstituto(int codigoInstituto) {
- this.codigoInstituto = codigoInstituto;
- }
-
- public int getCodigoFormacio() {
- return codigoFormacio;
- }
-
- public void setCodigoFormacio(int codigoFormacio) {
- this.codigoFormacio = codigoFormacio;
- }
-
- public int getAnyoAcademico() {
- return anyoAcademico;
- }
-
- public void setAnyoAcademico(int anyoAcademico) {
- this.anyoAcademico = anyoAcademico;
- }
-
- @Override
- public String toString() {
- return "InstitutoFormacionCSV [filaTratar=" + filaTratar + ", codigoInstituto=" + codigoInstituto
- + ", codigoFormacio=" + codigoFormacio + ", anyoAcademico=" + anyoAcademico + "]";
- }
-
-}
diff --git a/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/ProcesadorDatos.java b/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/ProcesadorDatos.java
index c532b75..17d0f8e 100644
--- a/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/ProcesadorDatos.java
+++ b/src/main/java/org/comunidadmadrid/fp/dam2/procesamiento/ProcesadorDatos.java
@@ -3,19 +3,28 @@
*/
package org.comunidadmadrid.fp.dam2.procesamiento;
-import java.io.FileNotFoundException;
+import java.io.BufferedReader;
import java.io.FileReader;
+import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
+import org.comunidadmadrid.fp.dam2.dao.IFormacionDAO;
+import org.comunidadmadrid.fp.dam2.dao.IInstitutoDAO;
+import org.comunidadmadrid.fp.dam2.dao.IInstitutoFormacionDAO;
+import org.comunidadmadrid.fp.dam2.dao.hibernate.FormacionDaoHibernate;
+import org.comunidadmadrid.fp.dam2.dao.hibernate.InstitutoFormacionDaoHibernate;
+import org.comunidadmadrid.fp.dam2.dao.jpa.InstitutoDaoJPA;
+import org.comunidadmadrid.fp.dam2.excepcion.FormacionException;
+import org.comunidadmadrid.fp.dam2.gestores.GestorFicheroConfiguracion;
import org.comunidadmadrid.fp.dam2.utilidades.GestorURLs;
import org.comunidadmadrid.fp.dam2.vo.CicloFormativo;
import org.comunidadmadrid.fp.dam2.vo.Formacion;
+import org.comunidadmadrid.fp.dam2.vo.Instituto;
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion;
import org.comunidadmadrid.fp.dam2.vo.InstitutoFormacion.InstitutoFormacionID;
-import com.opencsv.bean.CsvToBeanBuilder;
-
+import tools.jackson.databind.JsonNode;
import tools.jackson.databind.ObjectMapper;
import tools.jackson.dataformat.xml.XmlMapper;
@@ -25,110 +34,132 @@ Programador: Isidoro Nevares MartÃn
Fecha: 1 mar 2025
*/
public class ProcesadorDatos {
- /**
- *
- * @param urlFormaciones
- * @return
- */
public List obtenerFormacionesDeURL(String urlFormaciones) {
List listaFormaciones = null;
String informacionFormacionesXML = GestorURLs.getTextoFromURL(urlFormaciones);
ObjectMapper mapeadorXML = new XmlMapper();
- // obtener Formaciones XMl a partir de la URL
- FormacionXML[] arrayFormaciones = mapeadorXML.readValue(informacionFormacionesXML, FormacionXML[].class);
- if (arrayFormaciones != null && arrayFormaciones.length > 0) {
- listaFormaciones = new ArrayList();
- for (FormacionXML formacionXML : arrayFormaciones) {
- // Se convierte un onjeto de tipo Fomarciones XMl en otro de tipo Formacion
- Formacion formacion = obtenerFormacionDeFormacionXML(formacionXML);
- if (formacion != null)
- listaFormaciones.add(formacion);
+ try {
+ // obtener Formaciones XMl a partir de la URL
+ JsonNode nodoRaiz = mapeadorXML.readTree(informacionFormacionesXML);
+
+ if (nodoRaiz != null) {
+ listaFormaciones = new ArrayList();
+
+ JsonNode elementos = nodoRaiz.has("formacion") ? nodoRaiz.get("formacion") : nodoRaiz;
+
+ if (elementos.isArray()) {
+ for (JsonNode nodo : elementos) {
+ Formacion formacion = obtenerFormacionDeJsonNode(nodo);
+ if (formacion != null)
+ listaFormaciones.add(formacion);
+ }
+ } else if (!elementos.isMissingNode() && !elementos.isNull()) {
+ Formacion formacion = obtenerFormacionDeJsonNode(elementos);
+ if (formacion != null)
+ listaFormaciones.add(formacion);
+ }
}
+ } catch (Exception e) {
+ System.err.println("Error procesando XML con JsonNode: " + e.getMessage());
+ e.printStackTrace();
}
+
return listaFormaciones;
}
/**
+ * Procesar las formaciones que se encuentran en el fichero CSV y almacenarlas
+ * en la Base de datos.
*
- * @param rutaCSVInstitutoFormacion
- * @return
*/
- @SuppressWarnings("unchecked")
- public List obtenerInstitutoFormacionDeFicheroCSV(String rutaCSVInstitutoFormacion) {
- List listaInstitutosFormaciones = null;
- try {
- @SuppressWarnings({ "rawtypes" })
- // obtener InstitutoFormacion CSV a partir de la ruta del fichero CSV
- List listaInstitutosFormacionesCSV = new CsvToBeanBuilder(
- new FileReader(rutaCSVInstitutoFormacion)).withType(InstitutoFormacionCSV.class).withSeparator(',')
- .build().parse();
- if (listaInstitutosFormacionesCSV != null && listaInstitutosFormacionesCSV.size() > 0) {
- listaInstitutosFormaciones = new ArrayList();
- for (InstitutoFormacionCSV institutoFormacionCSV : listaInstitutosFormacionesCSV) {
- // Se convierte un onjeto de tipo InstitutoFormacion CSV en otro de tipo
- // InstitutoFormacion
- InstitutoFormacion institutoFormacion = obtenerInstituoFormacionDeInstituoFormacionCSV(
- institutoFormacionCSV);
- if (institutoFormacion != null)
- listaInstitutosFormaciones.add(institutoFormacion);
+ public void crearFormacionesInstitutoCSV() throws FormacionException {
+ String rutaFicheroCSV = GestorFicheroConfiguracion.obtenerValor("ruta.csv");
+
+ try (BufferedReader br = new BufferedReader(new FileReader(rutaFicheroCSV))) {
+ String linea;
+
+ // Saltar cabecera
+ br.readLine();
+
+ IInstitutoFormacionDAO institutoFormacionDAO = new InstitutoFormacionDaoHibernate();
+ IFormacionDAO iFormacionDAO = new FormacionDaoHibernate();
+ IInstitutoDAO iInstitutoDAO = new InstitutoDaoJPA();
+ while ((linea = br.readLine()) != null) {
+
+ String[] partes = linea.split(",");
+ String registroATratar = partes[0];
+ int idFormacion = Integer.parseInt(partes[1].trim());
+ int idInstituto = Integer.parseInt(partes[2].trim());
+ int anyo = Integer.parseInt(partes[3].trim());
+
+ // Si el registro es de tipo "S" se tratará para insertarse en la Base de datos.
+ if (registroATratar.equals("S")) {
+ InstitutoFormacionID institutoFormacionID = new InstitutoFormacionID(idInstituto, idFormacion);
+ InstitutoFormacion institutoFormacionBBDD = institutoFormacionDAO
+ .obtenerInstitutoFormacionPorID(institutoFormacionID);
+ // Si no existe información en la Base de datos.
+ if (institutoFormacionBBDD == null) {
+ InstitutoFormacion institutoFormacion = new InstitutoFormacion();
+
+ // Sólo se insertará el InstitutoFormacion si existen tanto el Instituto como la
+ // Formación en la Base de datos.
+ Instituto instituto = iInstitutoDAO.obtenerInstitutoPorID(idInstituto);
+ Formacion formacion = iFormacionDAO.obtenerFormacionPorID(idFormacion);
+ if (instituto != null && formacion != null) {
+ institutoFormacion.setIdInstitutoFormacion(institutoFormacionID);
+ institutoFormacion.setInstituto(instituto);
+ institutoFormacion.setFormacion(formacion);
+ institutoFormacion.setAnyoAcademico(anyo);
+
+ institutoFormacionDAO.insertarInstitutoFormacion(institutoFormacion);
+ }
+ }
}
}
-
- } catch (IllegalStateException | FileNotFoundException e) {
+ } catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
- return listaInstitutosFormaciones;
}
/**
+ * Convierte un JsonNode que representa una formación en el objeto Formacion
+ * correspondiente.
*
- * @param formacionXML
+ * @param nodoJson
* @return
*/
- private Formacion obtenerFormacionDeFormacionXML(FormacionXML formacionXML) {
+ private Formacion obtenerFormacionDeJsonNode(JsonNode nodoJson) {
Formacion formacion = null;
- if (formacionXML != null) {
+ if (nodoJson != null && !nodoJson.isNull()) {
formacion = new Formacion();
- formacion.setIdentificador(formacionXML.getIdentificador());
- int formacionSTEM = formacionXML.getEsFormacionSTEM();
- if (formacionSTEM == 1)
- formacion.setIndicadorSTEM(true);
- else
- formacion.setIndicadorSTEM(false);
- formacion.setNombreCorto(formacionXML.getNombreCorto());
+
+ // Atributos mapeados como nodos en Jackson
+ if (nodoJson.has("id_formacion")) {
+ formacion.setIdentificador(nodoJson.get("id_formacion").asInt());
+ }
+
+ int formacionSTEM = 0;
+ if (nodoJson.has("es_formacion_stem")) {
+ formacionSTEM = nodoJson.get("es_formacion_stem").asInt();
+ }
+ formacion.setIndicadorSTEM(formacionSTEM == 1);
+
+ if (nodoJson.has("nombre_corto")) {
+ formacion.setNombreCorto(nodoJson.get("nombre_corto").asString());
+ }
CicloFormativo ciclo = new CicloFormativo();
- ciclo.setIdentificador(formacionXML.getCodigoCicloFormativo());
+ if (nodoJson.has("cod_ciclo_formativo")) {
+ ciclo.setIdentificador(nodoJson.get("cod_ciclo_formativo").asInt());
+ }
formacion.setCicloFormativo(ciclo);
}
return formacion;
}
- /**
- *
- * @param institutoFormacionCSV
- * @return
- */
- private InstitutoFormacion obtenerInstituoFormacionDeInstituoFormacionCSV(
- InstitutoFormacionCSV institutoFormacionCSV) {
- InstitutoFormacion institutoFormacion = null;
- if (institutoFormacionCSV != null) {
- if (institutoFormacionCSV.getFilaTratar().equals("S")) {
- institutoFormacion = new InstitutoFormacion();
-
- InstitutoFormacionID claveInstitoFormacion = new InstitutoFormacionID(
- institutoFormacionCSV.getCodigoInstituto(), institutoFormacionCSV.getCodigoFormacio());
- institutoFormacion.setIdInstitutoFormacion(claveInstitoFormacion);
-
- institutoFormacion.setAnyoAcademico(institutoFormacionCSV.getAnyoAcademico());
- }
- }
- return institutoFormacion;
- }
-
}
diff --git a/src/main/resources/META-INF/persistence.xml b/src/main/resources/META-INF/persistence.xml
index b44d65e..4128b8a 100644
--- a/src/main/resources/META-INF/persistence.xml
+++ b/src/main/resources/META-INF/persistence.xml
@@ -12,7 +12,7 @@
-
+
diff --git a/src/main/resources/formacion.properties b/src/main/resources/formacion.properties
index 7fc2056..c79167f 100644
--- a/src/main/resources/formacion.properties
+++ b/src/main/resources/formacion.properties
@@ -1,11 +1,11 @@
# Información sobre la Base de datos PostgreSQL
jdbc.driver=org.postgresql.Driver
-jdbc.url=jdbc:postgresql://10.11.218.147:5432/formacionfp_postgresql
+jdbc.url=jdbc:postgresql://192.168.1.36:5432/formacionfp_postgresql
jdbc.usuario=vdlp
jdbc.password=postgresql_123
# Información sobre la Base de datos MongoDB
-mongodb.url=mongodb://localhost:27017/
+mongodb.url=mongodb://admin:mongodb_123@192.168.1.36:27017
mongodb.bbdd=formacionfp_dam2
#ruta URL formaciones
diff --git a/src/main/resources/hibernate.cfg.xml b/src/main/resources/hibernate.cfg.xml
index 42a339a..e8def07 100644
--- a/src/main/resources/hibernate.cfg.xml
+++ b/src/main/resources/hibernate.cfg.xml
@@ -4,7 +4,7 @@
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
- jdbc:mysql://10.11.218.147:3306/formacionfp_dam2
+ jdbc:mysql://192.168.1.36:3306/formacionfp_dam2
com.mysql.cj.jdbc.Driver
org.hibernate.dialect.MySQLDialect