Adaptación para el procesamiento de ficheros/URLs/CSV
This commit is contained in:
parent
2725ebf0ea
commit
3c45a7e1a9
17
.classpath
17
.classpath
@ -37,5 +37,22 @@
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" path="target/generated-sources/annotations">
|
||||
<attributes>
|
||||
<attribute name="ignore_optional_problems" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="m2e-apt" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="src" output="target/test-classes" path="target/generated-test-sources/test-annotations">
|
||||
<attributes>
|
||||
<attribute name="ignore_optional_problems" value="true"/>
|
||||
<attribute name="test" value="true"/>
|
||||
<attribute name="optional" value="true"/>
|
||||
<attribute name="maven.pomderived" value="true"/>
|
||||
<attribute name="m2e-apt" value="true"/>
|
||||
</attributes>
|
||||
</classpathentry>
|
||||
<classpathentry kind="output" path="target/classes"/>
|
||||
</classpath>
|
||||
|
||||
11
.project
11
.project
@ -20,4 +20,15 @@
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
<nature>org.eclipse.m2e.core.maven2Nature</nature>
|
||||
</natures>
|
||||
<filteredResources>
|
||||
<filter>
|
||||
<id>1771843084632</id>
|
||||
<name></name>
|
||||
<type>30</type>
|
||||
<matcher>
|
||||
<id>org.eclipse.core.resources.regexFilterMatcher</id>
|
||||
<arguments>node_modules|\.git|__CREATED_BY_JAVA_LANGUAGE_SERVER__</arguments>
|
||||
</matcher>
|
||||
</filter>
|
||||
</filteredResources>
|
||||
</projectDescription>
|
||||
|
||||
@ -1,2 +0,0 @@
|
||||
eclipse.preferences.version=1
|
||||
encoding/<project>=UTF-8
|
||||
2
.settings/org.eclipse.jdt.apt.core.prefs
Normal file
2
.settings/org.eclipse.jdt.apt.core.prefs
Normal file
@ -0,0 +1,2 @@
|
||||
eclipse.preferences.version=1
|
||||
org.eclipse.jdt.apt.aptEnabled=false
|
||||
@ -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
|
||||
|
||||
@ -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
|
||||
|
@ -8,26 +8,23 @@ 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<InstitutoFormacion> 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();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -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
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
@ -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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -23,19 +23,13 @@ public class InstitutoDaoJPA implements IInstitutoDAO {
|
||||
public Instituto obtenerInstitutoPorID(int identificador) throws FormacionException {
|
||||
Instituto instituto = null;
|
||||
|
||||
EntityManager gestorEntidades = null;
|
||||
try {
|
||||
gestorEntidades= GestorEntityManagerJPA.getEntityManager();
|
||||
try (EntityManager gestorEntidades = GestorEntityManagerJPA.getEntityManager()) {
|
||||
|
||||
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;
|
||||
}
|
||||
@ -65,7 +59,6 @@ public class InstitutoDaoJPA implements IInstitutoDAO {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void actualizarInstituto(Instituto instituto) throws FormacionException {
|
||||
EntityManager gestorEntidades = 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;
|
||||
}
|
||||
}
|
||||
@ -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 + "]";
|
||||
}
|
||||
|
||||
}
|
||||
@ -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<Formacion> obtenerFormacionesDeURL(String urlFormaciones) {
|
||||
List<Formacion> listaFormaciones = null;
|
||||
|
||||
String informacionFormacionesXML = GestorURLs.getTextoFromURL(urlFormaciones);
|
||||
ObjectMapper mapeadorXML = new XmlMapper();
|
||||
|
||||
try {
|
||||
// obtener Formaciones XMl a partir de la URL
|
||||
FormacionXML[] arrayFormaciones = mapeadorXML.readValue(informacionFormacionesXML, FormacionXML[].class);
|
||||
if (arrayFormaciones != null && arrayFormaciones.length > 0) {
|
||||
JsonNode nodoRaiz = mapeadorXML.readTree(informacionFormacionesXML);
|
||||
|
||||
if (nodoRaiz != null) {
|
||||
listaFormaciones = new ArrayList<Formacion>();
|
||||
for (FormacionXML formacionXML : arrayFormaciones) {
|
||||
// Se convierte un onjeto de tipo Fomarciones XMl en otro de tipo Formacion
|
||||
Formacion formacion = obtenerFormacionDeFormacionXML(formacionXML);
|
||||
|
||||
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<InstitutoFormacion> obtenerInstitutoFormacionDeFicheroCSV(String rutaCSVInstitutoFormacion) {
|
||||
List<InstitutoFormacion> listaInstitutosFormaciones = null;
|
||||
|
||||
try {
|
||||
@SuppressWarnings({ "rawtypes" })
|
||||
// obtener InstitutoFormacion CSV a partir de la ruta del fichero CSV
|
||||
List<InstitutoFormacionCSV> listaInstitutosFormacionesCSV = new CsvToBeanBuilder(
|
||||
new FileReader(rutaCSVInstitutoFormacion)).withType(InstitutoFormacionCSV.class).withSeparator(',')
|
||||
.build().parse();
|
||||
if (listaInstitutosFormacionesCSV != null && listaInstitutosFormacionesCSV.size() > 0) {
|
||||
listaInstitutosFormaciones = new ArrayList<InstitutoFormacion>();
|
||||
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;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<!-- Configuración para la conexión a la Base de Datos -->
|
||||
<properties>
|
||||
<property name="jakarta.persistence.jdbc.driver" value="com.mysql.cj.jdbc.Driver" />
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://10.11.218.147:3306/formacionfp_dam2" />
|
||||
<property name="jakarta.persistence.jdbc.url" value="jdbc:mysql://192.168.1.36:3306/formacionfp_dam2" />
|
||||
<property name="jakarta.persistence.jdbc.user" value="root" />
|
||||
<property name="jakarta.persistence.jdbc.password" value="mysql_123" />
|
||||
|
||||
|
||||
@ -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
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<hibernate-configuration>
|
||||
<session-factory>
|
||||
<property name="connection.url">jdbc:mysql://10.11.218.147:3306/formacionfp_dam2</property>
|
||||
<property name="connection.url">jdbc:mysql://192.168.1.36:3306/formacionfp_dam2</property>
|
||||
<property name="hibernate.connection.driver_class">com.mysql.cj.jdbc.Driver</property>
|
||||
|
||||
<property name="dialect">org.hibernate.dialect.MySQLDialect</property>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user