dao de Gasto y Patrocinador
This commit is contained in:
parent
1a0f8809a4
commit
6f0b89e8a3
@ -19,8 +19,18 @@ public class AppProyectosIES {
|
||||
public static void main(String[] args) {
|
||||
AppProyectosIES app = new AppProyectosIES();
|
||||
|
||||
/*
|
||||
delete from t_gasto ;
|
||||
delete from t_ingreso;
|
||||
delete from t_curso_proyecto;
|
||||
delete from t_concepto ;
|
||||
delete from t_patrocinador;
|
||||
delete from t_proyecto ;
|
||||
delete from t_proyecto
|
||||
*/
|
||||
|
||||
// Generar la estructura de la base de datos en PostgreSQL
|
||||
// GestorSesionesHibernate.getSession();
|
||||
GestorSesionesHibernate.getSession();
|
||||
|
||||
try {
|
||||
app.procesarFicheros();
|
||||
|
||||
@ -5,7 +5,7 @@ import es.palomafp.aadd.inm.vo.Concepto;
|
||||
|
||||
/**
|
||||
*
|
||||
* IProyectoDAO: Clase que realiza ....
|
||||
* IConceptoDAO: Interfaz que representa las operaciones a realizar con la entidad Concepto
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 20 ene 2026
|
||||
*
|
||||
|
||||
@ -5,7 +5,7 @@ import es.palomafp.aadd.inm.vo.CursoProyecto;
|
||||
|
||||
/**
|
||||
*
|
||||
* IProyectoDAO: Clase que realiza ....
|
||||
* ICursoProyectoDAO: Interfaz que representa las operaciones a realizar con la entidad CursoProyecto
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 20 ene 2026
|
||||
*
|
||||
|
||||
18
src/main/java/es/palomafp/aadd/inm/dao/IGastoDAO.java
Normal file
18
src/main/java/es/palomafp/aadd/inm/dao/IGastoDAO.java
Normal file
@ -0,0 +1,18 @@
|
||||
package es.palomafp.aadd.inm.dao;
|
||||
|
||||
import es.palomafp.aadd.inm.excepcion.ProyectosIESException;
|
||||
import es.palomafp.aadd.inm.vo.Gasto;
|
||||
|
||||
/**
|
||||
*
|
||||
* IGastoDAO: Interfaz que representa las operaciones a realizar con la entidad Gasto
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 20 ene 2026
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
public interface IGastoDAO extends IOperacionesDAOEntidad<Gasto, Integer> {
|
||||
Gasto obtenerGastoPorNombre(String nombreGasto) throws ProyectosIESException;
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@ import es.palomafp.aadd.inm.excepcion.ProyectosIESException;
|
||||
|
||||
/**
|
||||
*
|
||||
* IOperacionesBasicas: Clase que realiza ....
|
||||
* IOperacionesBasicas: Interfaz que representa las operaciones comunes a todas las entidades de persistencia.
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 14 dic 2025
|
||||
*
|
||||
|
||||
18
src/main/java/es/palomafp/aadd/inm/dao/IPatrocinadorDAO.java
Normal file
18
src/main/java/es/palomafp/aadd/inm/dao/IPatrocinadorDAO.java
Normal file
@ -0,0 +1,18 @@
|
||||
package es.palomafp.aadd.inm.dao;
|
||||
|
||||
import es.palomafp.aadd.inm.excepcion.ProyectosIESException;
|
||||
import es.palomafp.aadd.inm.vo.Patrocinador;
|
||||
|
||||
/**
|
||||
*
|
||||
* IPatrocinadorDAO: Interfaz que representa las operaciones a realizar con la entidad Patrocinador
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 20 ene 2026
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
public interface IPatrocinadorDAO extends IOperacionesDAOEntidad<Patrocinador, Integer> {
|
||||
Patrocinador obtenerPatrocinadorPorNombre(String nombrePatrocinador) throws ProyectosIESException;
|
||||
}
|
||||
|
||||
@ -5,7 +5,7 @@ import es.palomafp.aadd.inm.vo.Proyecto;
|
||||
|
||||
/**
|
||||
*
|
||||
* IProyectoDAO: Clase que realiza ....
|
||||
* IProyectoDAO: Interfaz que representa las operaciones a realizar con la entidad Proyecto
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 20 ene 2026
|
||||
*
|
||||
|
||||
@ -0,0 +1,69 @@
|
||||
package es.palomafp.aadd.inm.dao.hbm;
|
||||
|
||||
import org.hibernate.Session;
|
||||
import org.hibernate.Transaction;
|
||||
import org.hibernate.query.SelectionQuery;
|
||||
|
||||
import es.palomafp.aadd.inm.dao.IGastoDAO;
|
||||
import es.palomafp.aadd.inm.excepcion.ProyectosIESException;
|
||||
import es.palomafp.aadd.inm.gestor.GestorSesionesHibernate;
|
||||
import es.palomafp.aadd.inm.vo.Gasto;
|
||||
|
||||
/**
|
||||
*
|
||||
* ConceptoDaoHibernate: Clase que implementa el interfaz IOperacionesDAOEntidad
|
||||
*
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 31 oct 2025
|
||||
*/
|
||||
public class GastoDaoHibernate implements IGastoDAO {
|
||||
|
||||
@Override
|
||||
public void crearEntidad(Gasto entidad) throws ProyectosIESException {
|
||||
Transaction transaccion = null;
|
||||
Session sesion = null;
|
||||
|
||||
try {
|
||||
sesion = GestorSesionesHibernate.getSession();
|
||||
transaccion = sesion.beginTransaction();
|
||||
|
||||
sesion.persist(entidad);
|
||||
|
||||
transaccion.commit();
|
||||
} catch (Exception e) {
|
||||
if (transaccion != null && transaccion.isActive()) {
|
||||
transaccion.rollback();
|
||||
}
|
||||
throw new ProyectosIESException(e, this.getClass(), ProyectosIESException.ERROR_INSERCION);
|
||||
} finally {
|
||||
if (sesion != null) {
|
||||
sesion.close();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public Gasto obtenerGastoPorNombre(String nombreGasto) throws ProyectosIESException {
|
||||
Gasto gasto = null;
|
||||
String sentenciaHQL = "SELECT g FROM Gasto g WHERE g.nombre = :nombre";
|
||||
|
||||
// try con recursos "cerrables": Session
|
||||
try (Session sesion = GestorSesionesHibernate.getSession();) {
|
||||
SelectionQuery<Gasto> sentenciaConsulta = sesion.createSelectionQuery(sentenciaHQL, Gasto.class);
|
||||
sentenciaConsulta.setParameter("nombre", nombreGasto);
|
||||
|
||||
gasto = sentenciaConsulta.getSingleResultOrNull();
|
||||
} catch (Exception e) {
|
||||
throw new ProyectosIESException(e, this.getClass(), ProyectosIESException.ERROR_CONSULTA);
|
||||
}
|
||||
return gasto;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Gasto obtenerEntidadPorID(Integer clave) throws ProyectosIESException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
73
src/main/java/es/palomafp/aadd/inm/dao/jpa/GastoDaoJPA.java
Normal file
73
src/main/java/es/palomafp/aadd/inm/dao/jpa/GastoDaoJPA.java
Normal file
@ -0,0 +1,73 @@
|
||||
package es.palomafp.aadd.inm.dao.jpa;
|
||||
|
||||
import es.palomafp.aadd.inm.dao.IGastoDAO;
|
||||
import es.palomafp.aadd.inm.excepcion.ProyectosIESException;
|
||||
import es.palomafp.aadd.inm.gestor.GestorEntityManagerJPA;
|
||||
import es.palomafp.aadd.inm.vo.Gasto;
|
||||
import jakarta.persistence.EntityManager;
|
||||
import jakarta.persistence.EntityTransaction;
|
||||
import jakarta.persistence.TypedQuery;
|
||||
|
||||
/**
|
||||
*
|
||||
* ConceptoDaoJPA: Clase que implementa el interfaz IGastoDAO
|
||||
*
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 31 oct 2025
|
||||
*/
|
||||
public class GastoDaoJPA implements IGastoDAO {
|
||||
|
||||
@Override
|
||||
public void crearEntidad(Gasto entidad) throws ProyectosIESException{
|
||||
EntityManager gestorEntidades= null;
|
||||
EntityTransaction transaccion = null;
|
||||
|
||||
try {
|
||||
gestorEntidades = GestorEntityManagerJPA.getEntityManager();
|
||||
transaccion = gestorEntidades.getTransaction();
|
||||
transaccion .begin();
|
||||
|
||||
gestorEntidades.persist(entidad);
|
||||
|
||||
transaccion.commit();
|
||||
} catch (Exception e) {
|
||||
if (transaccion != null && transaccion.isActive()) {
|
||||
transaccion.rollback();
|
||||
}
|
||||
throw new ProyectosIESException(e, this.getClass(), ProyectosIESException.ERROR_INSERCION);
|
||||
} finally {
|
||||
if (gestorEntidades != null) {
|
||||
gestorEntidades.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Gasto obtenerGastoPorNombre(String nombreGasto) throws ProyectosIESException {
|
||||
Gasto gasto = null;
|
||||
|
||||
String sentenciaJPQL = """
|
||||
SELECT g FROM Gasto g
|
||||
WHERE g.nombre= :nombre
|
||||
""";
|
||||
|
||||
// try con recursos "cerrables": Session
|
||||
try (EntityManager entityManager = GestorEntityManagerJPA.getEntityManager();) {
|
||||
TypedQuery<Gasto> query = entityManager.createQuery(sentenciaJPQL, Gasto.class);
|
||||
query.setParameter("nombre", nombreGasto);
|
||||
|
||||
gasto = query.getSingleResult();
|
||||
} catch (Exception e) {
|
||||
throw new ProyectosIESException(e, this.getClass(), ProyectosIESException.ERROR_CONSULTA);
|
||||
}
|
||||
|
||||
return gasto;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Gasto obtenerEntidadPorID(Integer clave) throws ProyectosIESException {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
@ -10,7 +10,7 @@ import jakarta.persistence.TypedQuery;
|
||||
|
||||
/**
|
||||
*
|
||||
* ConceptoDaoJPA: Clase que implementa el interfaz IOperacionesDAOEntidad
|
||||
* ProyectoDaoJPA: Clase que implementa el interfaz IProyectoDAO
|
||||
*
|
||||
* @author Isidoro Nevares Martín - IES Virgen de la Paloma
|
||||
* @date 31 oct 2025
|
||||
@ -68,4 +68,5 @@ public class ProyectoDaoJPA implements IProyectoDAO {
|
||||
// TODO Auto-generated method stub
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -5,12 +5,14 @@ import java.time.LocalDate;
|
||||
|
||||
import es.palomafp.aadd.inm.dao.IConceptoDAO;
|
||||
import es.palomafp.aadd.inm.dao.ICursoProyectoDAO;
|
||||
import es.palomafp.aadd.inm.dao.IOperacionesDAOEntidad;
|
||||
import es.palomafp.aadd.inm.dao.IGastoDAO;
|
||||
import es.palomafp.aadd.inm.dao.IProyectoDAO;
|
||||
import es.palomafp.aadd.inm.dao.hbm.ConceptoDaoHibernate;
|
||||
import es.palomafp.aadd.inm.dao.hbm.CursoProyectoDaoHibernate;
|
||||
import es.palomafp.aadd.inm.dao.hbm.GastoDaoHibernate;
|
||||
import es.palomafp.aadd.inm.dao.hbm.ProyectoDaoHibernate;
|
||||
import es.palomafp.aadd.inm.dao.jpa.CursoProyectoDaoJPA;
|
||||
import es.palomafp.aadd.inm.dao.jpa.GastoDaoJPA;
|
||||
import es.palomafp.aadd.inm.excepcion.ProyectosIESException;
|
||||
import es.palomafp.aadd.inm.gestor.GestorFicheroConfiguracion;
|
||||
import es.palomafp.aadd.inm.vo.Concepto;
|
||||
@ -71,13 +73,14 @@ public class ProcesadorFicheroJSON {
|
||||
gasto.setNumeroUnidades(unidades);
|
||||
gasto.setPrecioUnidad(precioUnitario);
|
||||
|
||||
// Obtener el concepto para asociárselo al gasto
|
||||
IConceptoDAO conceptoDAO = new ConceptoDaoHibernate();
|
||||
Concepto concepto=conceptoDAO.obtenerConceptoPorNombre(nombreConcepto)
|
||||
Concepto concepto=conceptoDAO.obtenerConceptoPorNombre(nombreConcepto);
|
||||
gasto.setConcepto(concepto);
|
||||
|
||||
|
||||
// Inserción en PostgreSQL con Hibernate
|
||||
IOperacionesDAOEntidad<Gasto, Integer> operacionesDAOGasto = new GastoDaoHibernate();
|
||||
IGastoDAO operacionesDAOGasto = new GastoDaoHibernate();
|
||||
operacionesDAOGasto.crearEntidad(gasto);
|
||||
// Inserción en ObjectDB con JPA
|
||||
operacionesDAOGasto = new GastoDaoJPA();
|
||||
|
||||
@ -4,6 +4,7 @@ import java.io.File;
|
||||
import java.time.LocalDate;
|
||||
|
||||
import es.palomafp.aadd.inm.dao.IOperacionesDAOEntidad;
|
||||
import es.palomafp.aadd.inm.dao.IProyectoDAO;
|
||||
import es.palomafp.aadd.inm.dao.hbm.ConceptoDaoHibernate;
|
||||
import es.palomafp.aadd.inm.dao.hbm.CursoAcademicoDaoHibernate;
|
||||
import es.palomafp.aadd.inm.dao.hbm.PatrocinadorDaoHibernate;
|
||||
@ -92,7 +93,7 @@ public class ProcesadorFicheroXML {
|
||||
proyecto.setUrlLogo(urlImagenLogo);
|
||||
|
||||
// Inserción en PostgreSQL con Hibernate
|
||||
IOperacionesDAOEntidad<Proyecto, Integer> operacionesDAOProyecto = new ProyectoDaoHibernate();
|
||||
IProyectoDAO operacionesDAOProyecto = new ProyectoDaoHibernate();
|
||||
operacionesDAOProyecto.crearEntidad(proyecto);
|
||||
// Inserción en ObjectDB con JPA
|
||||
operacionesDAOProyecto = new ProyectoDaoJPA();
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
|
||||
<!-- Configuración de propiedades del SGDB (ObjectDB)-->
|
||||
<properties>
|
||||
<property name="jakarta.persistence.jdbc.url" value="objectdb://localhost/proyectos_ies.odb" />
|
||||
<property name="jakarta.persistence.jdbc.url" value="objectdb://10.19.0.253:6136/proyectos_ies.odb" />
|
||||
<property name="jakarta.persistence.jdbc.user" value="admin"/>
|
||||
<property name="jakarta.persistence.jdbc.password" value="admin"/>
|
||||
</properties>
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
"http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">
|
||||
<hibernate-configuration>
|
||||
<session-factory>
|
||||
<property name="connection.url">jdbc:postgresql://192.168.1.36:5432/proyectos_ies</property>
|
||||
<property name="connection.url">jdbc:postgresql://10.19.0.221:5432/proyectos_ies</property>
|
||||
<property name="connection.driver_class">org.postgresql.Driver</property>
|
||||
|
||||
<property name="dialect">org.hibernate.dialect.PostgreSQLDialect</property>
|
||||
|
||||
Loading…
Reference in New Issue
Block a user