feat(ch 8 & 9): added

This commit is contained in:
Rafa Muñoz
2025-02-16 19:47:41 +01:00
parent acb8877882
commit 1b2b2350f1
213 changed files with 96731 additions and 0 deletions

View File

@@ -0,0 +1,210 @@
package tutorialJava.modelosBasesDeDatosComunesJPA;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.EntityManagerFactory;
import javax.persistence.NoResultException;
import javax.persistence.Persistence;
import javax.persistence.Query;
import javax.persistence.TypedQuery;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
public class Controlador {
private static EntityManagerFactory entityManagerFactory;
private String nombreEntidadControlada = "";
private Class entidadControlada = null;
/**
*
* @param nombreEntidad
*/
public Controlador(Class entidadControlada, String unidadPersistencia) {
if (entityManagerFactory == null) {
entityManagerFactory = Persistence.createEntityManagerFactory(unidadPersistencia);
}
this.entidadControlada = entidadControlada;
this.nombreEntidadControlada = this.entidadControlada.getName();
}
/**
*
* @return
*/
public static EntityManagerFactory getEntityManagerFactory() {
return entityManagerFactory;
}
/**
*
* @param id
* @return
*/
public Entidad find(int id) {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Entidad entidad = (Entidad) em.find(this.entidadControlada, id);
em.close();
return entidad;
} catch (Exception ex) {
ex.printStackTrace();
return null;
}
}
/**
*
*/
public void deleteAll() {
EntityManager em = getEntityManagerFactory().createEntityManager();
em.getTransaction().begin();
em.createQuery("DELETE FROM " + this.nombreEntidadControlada + " o").executeUpdate();
em.getTransaction().commit();
em.close();
}
/**
*
*/
public void persist(Entidad e) {
EntityManager em = getEntityManagerFactory().createEntityManager();
em.getTransaction().begin();
em.persist(e);
em.getTransaction().commit();
em.close();
}
/**
*
*/
public void merge(Entidad e) {
EntityManager em = getEntityManagerFactory().createEntityManager();
em.getTransaction().begin();
em.merge(e);
em.getTransaction().commit();
em.close();
}
/**
*
* @param e
*/
public void save(Entidad e) {
EntityManager em = getEntityManagerFactory().createEntityManager();
if (e.getId() != 0) {
merge(e);
}
else {
persist(e);
}
}
/**
*
*/
public void remove(Entidad e) {
EntityManager em = getEntityManagerFactory().createEntityManager();
Entidad actual = null;
em.getTransaction().begin();
if (!em.contains(e)) {
actual = em.merge(e);
}
em.remove(actual);
em.getTransaction().commit();
em.close();
}
/**
*
* @return
*/
public Entidad findFirst () {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT e FROM " + this.nombreEntidadControlada + " e order by e.id", Entidad.class);
Entidad resultado = (Entidad) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Entidad findLast () {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT e FROM " + this.nombreEntidadControlada + " e order by e.id desc", Entidad.class);
Entidad resultado = (Entidad) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Entidad findNext (Entidad e) {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT e FROM " + this.nombreEntidadControlada + " e where e.id > :idActual order by e.id", Entidad.class);
q.setParameter("idActual", e.getId());
Entidad resultado = (Entidad) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Entidad findPrevious (Entidad e) {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT e FROM " + this.nombreEntidadControlada + " e where e.id < :idActual order by e.id desc", Entidad.class);
q.setParameter("idActual", e.getId());
Entidad resultado = (Entidad) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
*/
public List<Entidad> findAll () {
EntityManager em = getEntityManagerFactory().createEntityManager();
TypedQuery<Entidad> q = em.createQuery("SELECT e FROM " + this.nombreEntidadControlada + " e", this.entidadControlada);
List<Entidad> entidades = (List<Entidad>) q.getResultList();
em.close();
return entidades;
}
}

View File

@@ -0,0 +1,10 @@
package tutorialJava.modelosBasesDeDatosComunesJPA;
public abstract class Entidad {
public Entidad () {
super();
}
public abstract int getId();
}

View File

@@ -0,0 +1,74 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo;
import java.io.Serializable;
import javax.persistence.*;
import java.util.List;
/**
* The persistent class for the curso database table.
*
*/
@Entity
@Table(name="curso")
@NamedQuery(name="Curso.findAll", query="SELECT c FROM Curso c")
public class Curso extends tutorialJava.modelosBasesDeDatosComunesJPA.Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String descripcion;
//bi-directional many-to-one association to Materia
@OneToMany(mappedBy="curso")
private List<Materia> materias;
public Curso() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getDescripcion() {
return this.descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public List<Materia> getMaterias() {
return this.materias;
}
public void setMaterias(List<Materia> materias) {
this.materias = materias;
}
public Materia addMateria(Materia materia) {
getMaterias().add(materia);
materia.setCurso(this);
return materia;
}
public Materia removeMateria(Materia materia) {
getMaterias().remove(materia);
materia.setCurso(null);
return materia;
}
@Override
public String toString() {
return descripcion;
}
}

View File

@@ -0,0 +1,159 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo;
import java.io.Serializable;
import javax.persistence.*;
import java.util.List;
/**
* The persistent class for the estudiante database table.
*
*/
@Entity
@NamedQuery(name="Estudiante.findAll", query="SELECT e FROM Estudiante e")
public class Estudiante extends tutorialJava.modelosBasesDeDatosComunesJPA.Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="apellido1")
private String primerApellido;
@Column(name="apellido2")
private String segundoApellido;
private String direccion;
private String dni;
private String email;
@Lob
private byte[] imagen;
private String nombre;
private String telefono;
//bi-directional many-to-one association to TipologiaSexo
@ManyToOne
@JoinColumn(name="idTipologiaSexo")
private TipologiaSexo tipologiaSexo;
//bi-directional many-to-one association to ValoracionMateria
@OneToMany(mappedBy="estudiante")
private List<ValoracionMateria> valoracionMaterias;
public Estudiante() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getPrimerApellido() {
return this.primerApellido;
}
public void setPrimerApellido(String primerApellido) {
this.primerApellido = primerApellido;
}
public String getSegundoApellido() {
return this.segundoApellido;
}
public void setSegundoApellido(String segundoApellido) {
this.segundoApellido = segundoApellido;
}
public String getDireccion() {
return this.direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public String getDni() {
return this.dni;
}
public void setDni(String dni) {
this.dni = dni;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
public byte[] getImagen() {
return this.imagen;
}
public void setImagen(byte[] imagen) {
this.imagen = imagen;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getTelefono() {
return this.telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public TipologiaSexo getTipologiaSexo() {
return this.tipologiaSexo;
}
public void setTipologiaSexo(TipologiaSexo tipologiaSexo) {
this.tipologiaSexo = tipologiaSexo;
}
public List<ValoracionMateria> getValoracionMaterias() {
return this.valoracionMaterias;
}
public void setValoracionMaterias(List<ValoracionMateria> valoracionMaterias) {
this.valoracionMaterias = valoracionMaterias;
}
public ValoracionMateria addValoracionMateria(ValoracionMateria valoracionMateria) {
getValoracionMaterias().add(valoracionMateria);
valoracionMateria.setEstudiante(this);
return valoracionMateria;
}
public ValoracionMateria removeValoracionMateria(ValoracionMateria valoracionMateria) {
getValoracionMaterias().remove(valoracionMateria);
valoracionMateria.setEstudiante(null);
return valoracionMateria;
}
@Override
public String toString() {
return nombre + " " + primerApellido + " " + segundoApellido;
}
}

View File

@@ -0,0 +1,96 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo;
import java.io.Serializable;
import javax.persistence.*;
import java.util.List;
/**
* The persistent class for the materia database table.
*
*/
@Entity
@NamedQuery(name="Materia.findAll", query="SELECT m FROM Materia m")
public class Materia extends tutorialJava.modelosBasesDeDatosComunesJPA.Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String acronimo;
private String nombre;
//bi-directional many-to-one association to Curso
@ManyToOne
private Curso curso;
//bi-directional many-to-one association to ValoracionMateria
@OneToMany(mappedBy="materia")
private List<ValoracionMateria> valoracionMaterias;
public Materia() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getAcronimo() {
return this.acronimo;
}
public void setAcronimo(String acronimo) {
this.acronimo = acronimo;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public Curso getCurso() {
return this.curso;
}
public void setCurso(Curso curso) {
this.curso = curso;
}
public List<ValoracionMateria> getValoracionMaterias() {
return this.valoracionMaterias;
}
public void setValoracionMaterias(List<ValoracionMateria> valoracionMaterias) {
this.valoracionMaterias = valoracionMaterias;
}
public ValoracionMateria addValoracionMateria(ValoracionMateria valoracionMateria) {
getValoracionMaterias().add(valoracionMateria);
valoracionMateria.setMateria(this);
return valoracionMateria;
}
public ValoracionMateria removeValoracionMateria(ValoracionMateria valoracionMateria) {
getValoracionMaterias().remove(valoracionMateria);
valoracionMateria.setMateria(null);
return valoracionMateria;
}
@Override
public String toString() {
return nombre;
}
}

View File

@@ -0,0 +1,171 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo;
import java.io.Serializable;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.databind.annotation.JsonAppend;
import java.util.List;
/**
* The persistent class for the profesor database table.
*
*/
@JsonAppend(
attrs = {
@JsonAppend.Attr(value = "idTipologiaSexo")
}
)
@Entity
@NamedQuery(name="Profesor.findAll", query="SELECT p FROM Profesor p")
public class Profesor extends tutorialJava.modelosBasesDeDatosComunesJPA.Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Column(name="apellido1")
private String primerApellido;
@Column(name="apellido2")
private String segundoApellido;
private String direccion;
private String dni;
private String email;
@Lob
private byte[] imagen;
private String nombre;
private String telefono;
//bi-directional many-to-one association to TipologiaSexo
@ManyToOne
@JoinColumn(name="idTipologiaSexo")
private TipologiaSexo tipologiaSexo;
//bi-directional many-to-one association to ValoracionMateria
@JsonIgnore
@OneToMany(mappedBy="profesor")
private List<ValoracionMateria> valoracionMaterias;
public Profesor() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getPrimerApellido() {
return this.primerApellido;
}
public void setPrimerApellido(String primerApellido) {
this.primerApellido = primerApellido;
}
public String getSegundoApellido() {
return this.segundoApellido;
}
public void setSegundoApellido(String segundoApellido) {
this.segundoApellido = segundoApellido;
}
public String getDireccion() {
return this.direccion;
}
public void setDireccion(String direccion) {
this.direccion = direccion;
}
public String getDni() {
return this.dni;
}
public void setDni(String dni) {
this.dni = dni;
}
public String getEmail() {
return this.email;
}
public void setEmail(String email) {
this.email = email;
}
public byte[] getImagen() {
return this.imagen;
}
public void setImagen(byte[] imagen) {
this.imagen = imagen;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getTelefono() {
return this.telefono;
}
public void setTelefono(String telefono) {
this.telefono = telefono;
}
public TipologiaSexo getTipologiaSexo() {
return this.tipologiaSexo;
}
public void setTipologiaSexo(TipologiaSexo tipologiaSexo) {
this.tipologiaSexo = tipologiaSexo;
}
public List<ValoracionMateria> getValoracionMaterias() {
return this.valoracionMaterias;
}
public void setValoracionMaterias(List<ValoracionMateria> valoracionMaterias) {
this.valoracionMaterias = valoracionMaterias;
}
public ValoracionMateria addValoracionMateria(ValoracionMateria valoracionMateria) {
getValoracionMaterias().add(valoracionMateria);
valoracionMateria.setProfesor(this);
return valoracionMateria;
}
public ValoracionMateria removeValoracionMateria(ValoracionMateria valoracionMateria) {
getValoracionMaterias().remove(valoracionMateria);
valoracionMateria.setProfesor(null);
return valoracionMateria;
}
@Override
public String toString() {
return nombre + " " + primerApellido + " " + segundoApellido;
}
}

View File

@@ -0,0 +1,105 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo;
import java.io.Serializable;
import javax.persistence.*;
import com.fasterxml.jackson.annotation.JsonIgnore;
import java.util.List;
/**
* The persistent class for the tipologiasexo database table.
*
*/
@Entity
@NamedQuery(name="TipologiaSexo.findAll", query="SELECT t FROM TipologiaSexo t")
public class TipologiaSexo extends tutorialJava.modelosBasesDeDatosComunesJPA.Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String descripcion;
//bi-directional many-to-one association to Estudiante
@JsonIgnore
@OneToMany(mappedBy="tipologiaSexo")
private List<Estudiante> estudiantes;
//bi-directional many-to-one association to Profesor
@JsonIgnore
@OneToMany(mappedBy="tipologiaSexo")
private List<Profesor> profesors;
public TipologiaSexo() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getDescripcion() {
return this.descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public List<Estudiante> getEstudiantes() {
return this.estudiantes;
}
public void setEstudiantes(List<Estudiante> estudiantes) {
this.estudiantes = estudiantes;
}
public Estudiante addEstudiante(Estudiante estudiante) {
getEstudiantes().add(estudiante);
estudiante.setTipologiaSexo(this);
return estudiante;
}
public Estudiante removeEstudiante(Estudiante estudiante) {
getEstudiantes().remove(estudiante);
estudiante.setTipologiaSexo(null);
return estudiante;
}
public List<Profesor> getProfesors() {
return this.profesors;
}
public void setProfesors(List<Profesor> profesors) {
this.profesors = profesors;
}
public Profesor addProfesor(Profesor profesor) {
getProfesors().add(profesor);
profesor.setTipologiaSexo(this);
return profesor;
}
public Profesor removeProfesor(Profesor profesor) {
getProfesors().remove(profesor);
profesor.setTipologiaSexo(null);
return profesor;
}
@Override
public String toString() {
return descripcion;
}
}

View File

@@ -0,0 +1,92 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo;
import java.io.Serializable;
import javax.persistence.*;
import java.util.Date;
/**
* The persistent class for the valoracionmateria database table.
*
*/
@Entity
@NamedQuery(name="ValoracionMateria.findAll", query="SELECT v FROM ValoracionMateria v")
public class ValoracionMateria extends tutorialJava.modelosBasesDeDatosComunesJPA.Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Temporal(TemporalType.DATE)
private Date fecha;
private float valoracion;
//bi-directional many-to-one association to Estudiante
@ManyToOne
@JoinColumn(name="idEstudiante")
private Estudiante estudiante;
//bi-directional many-to-one association to Materia
@ManyToOne
@JoinColumn(name="idMateria")
private Materia materia;
//bi-directional many-to-one association to Profesor
@ManyToOne
@JoinColumn(name="idProfesor")
private Profesor profesor;
public ValoracionMateria() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public Date getFecha() {
return this.fecha;
}
public void setFecha(Date fecha) {
this.fecha = fecha;
}
public float getValoracion() {
return this.valoracion;
}
public void setValoracion(float valoracion) {
this.valoracion = valoracion;
}
public Estudiante getEstudiante() {
return this.estudiante;
}
public void setEstudiante(Estudiante estudiante) {
this.estudiante = estudiante;
}
public Materia getMateria() {
return this.materia;
}
public void setMateria(Materia materia) {
this.materia = materia;
}
public Profesor getProfesor() {
return this.profesor;
}
public void setProfesor(Profesor profesor) {
this.profesor = profesor;
}
}

View File

@@ -0,0 +1,73 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.controladores;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.Curso;
public class CursoControlador extends Controlador {
// instancia del singleton
private static CursoControlador instancia = null;
/**
*
*/
public CursoControlador() {
super(Curso.class, "EvaluacionCentroEducativo");
}
/**
*
* @return
*/
public static CursoControlador getInstancia() {
if (instancia == null) {
instancia = new CursoControlador();
}
return instancia;
}
@Override
public Curso findFirst() {
return (Curso) super.findFirst();
}
@Override
public Curso findLast() {
return (Curso) super.findLast();
}
@Override
public Curso findNext(Entidad e) {
return (Curso) super.findNext(e);
}
@Override
public Curso findPrevious(Entidad e) {
return (Curso) super.findPrevious(e);
}
/**
*
* @return
*/
public List<Curso> findAllCursos () {
List<Curso> entities = new ArrayList<Curso>();
EntityManager em = getEntityManagerFactory().createEntityManager();
try {
Query q = em.createNativeQuery("SELECT * FROM curso", Curso.class);
entities = (List<Curso>) q.getResultList();
}
catch (NoResultException nrEx) {
}
em.close();
return entities;
}
}

View File

@@ -0,0 +1,74 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.controladores;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.Estudiante;
public class EstudianteControlador extends Controlador {
// instancia del singleton
private static EstudianteControlador instancia = null;
/**
*
*/
public EstudianteControlador() {
super(Estudiante.class, "EvaluacionCentroEducativo");
}
/**
*
* @return
*/
public static EstudianteControlador getInstancia() {
if (instancia == null) {
instancia = new EstudianteControlador();
}
return instancia;
}
@Override
public Estudiante findFirst() {
return (Estudiante) super.findFirst();
}
@Override
public Estudiante findLast() {
return (Estudiante) super.findLast();
}
@Override
public Estudiante findNext(Entidad e) {
return (Estudiante) super.findNext(e);
}
@Override
public Estudiante findPrevious(Entidad e) {
return (Estudiante) super.findPrevious(e);
}
/**
*
*/
public List<Estudiante> findAllEstudiantes() {
List<Estudiante> resultado = new ArrayList<Estudiante>();
EntityManager em = getEntityManagerFactory().createEntityManager();
try {
Query q = em.createNativeQuery("Select * from estudiante", Estudiante.class);
resultado = (List<Estudiante>) q.getResultList();
} catch (Exception e) {
}
em.close();
return resultado;
}
}

View File

@@ -0,0 +1,75 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.controladores;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.Curso;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.Materia;
public class MateriaControlador extends Controlador {
// instancia del singleton
private static MateriaControlador instancia = null;
/**
*
*/
public MateriaControlador() {
super(Materia.class, "EvaluacionCentroEducativo");
}
/**
*
* @return
*/
public static MateriaControlador getInstancia() {
if (instancia == null) {
instancia = new MateriaControlador();
}
return instancia;
}
@Override
public Materia findFirst() {
return (Materia) super.findFirst();
}
@Override
public Materia findLast() {
return (Materia) super.findLast();
}
@Override
public Materia findNext(Entidad e) {
return (Materia) super.findNext(e);
}
@Override
public Materia findPrevious(Entidad e) {
return (Materia) super.findPrevious(e);
}
/**
*
* @return
*/
public List<Materia> findAllMaterias () {
List<Materia> entities = new ArrayList<Materia>();
EntityManager em = getEntityManagerFactory().createEntityManager();
try {
Query q = em.createNativeQuery("SELECT * FROM materia", Materia.class);
entities = (List<Materia>) q.getResultList();
}
catch (NoResultException nrEx) {
}
em.close();
return entities;
}
}

View File

@@ -0,0 +1,74 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.controladores;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.Profesor;
public class ProfesorControlador extends Controlador {
// instancia del singleton
private static ProfesorControlador instancia = null;
/**
*
*/
public ProfesorControlador() {
super(Profesor.class, "EvaluacionCentroEducativo");
}
/**
*
* @return
*/
public static ProfesorControlador getInstancia() {
if (instancia == null) {
instancia = new ProfesorControlador();
}
return instancia;
}
@Override
public Profesor findFirst() {
return (Profesor) super.findFirst();
}
@Override
public Profesor findLast() {
return (Profesor) super.findLast();
}
@Override
public Profesor findNext(Entidad e) {
return (Profesor) super.findNext(e);
}
@Override
public Profesor findPrevious(Entidad e) {
return (Profesor) super.findPrevious(e);
}
/**
*
* @return
*/
public List<Profesor> findAllProfesores () {
List<Profesor> entities = new ArrayList<Profesor>();
EntityManager em = getEntityManagerFactory().createEntityManager();
try {
Query q = em.createNativeQuery("SELECT * FROM profesor", Profesor.class);
entities = (List<Profesor>) q.getResultList();
}
catch (NoResultException nrEx) {
}
em.close();
return entities;
}
}

View File

@@ -0,0 +1,54 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.controladores;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.TipologiaSexo;
public class TipologiaSexoControlador extends Controlador {
// instancia del singleton
private static TipologiaSexoControlador instancia = null;
/**
*
*/
public TipologiaSexoControlador() {
super(TipologiaSexo.class, "EvaluacionCentroEducativo");
}
/**
*
* @return
*/
public static TipologiaSexoControlador getInstancia() {
if (instancia == null) {
instancia = new TipologiaSexoControlador();
}
return instancia;
}
/**
*
* @return
*/
public List<TipologiaSexo> findAllTipologiasSexo () {
List<TipologiaSexo> entities = new ArrayList<TipologiaSexo>();
EntityManager em = getEntityManagerFactory().createEntityManager();
try {
Query q = em.createNativeQuery("SELECT * FROM tipologiasexo", TipologiaSexo.class);
entities = (List<TipologiaSexo>) q.getResultList();
}
catch (NoResultException nrEx) {
}
em.close();
return entities;
}
}

View File

@@ -0,0 +1,81 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.controladores;
import javax.persistence.EntityManager;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.Estudiante;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.Materia;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.Profesor;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.ValoracionMateria;
public class ValoracionMateriaControlador extends Controlador {
// instancia del singleton
private static ValoracionMateriaControlador instancia = null;
/**
*
*/
public ValoracionMateriaControlador() {
super(ValoracionMateria.class, "EvaluacionCentroEducativo");
}
/**
*
* @return
*/
public static ValoracionMateriaControlador getInstancia() {
if (instancia == null) {
instancia = new ValoracionMateriaControlador();
}
return instancia;
}
@Override
public ValoracionMateria findFirst() {
return (ValoracionMateria) super.findFirst();
}
@Override
public ValoracionMateria findLast() {
return (ValoracionMateria) super.findLast();
}
@Override
public ValoracionMateria findNext(Entidad e) {
return (ValoracionMateria) super.findNext(e);
}
@Override
public ValoracionMateria findPrevious(Entidad e) {
return (ValoracionMateria) super.findPrevious(e);
}
/**
*
* @param profesor
* @param materia
* @param estudiante
* @return
*/
public ValoracionMateria findByEstudianteAndProfesorAndMateria (Profesor profesor, Materia materia, Estudiante estudiante) {
ValoracionMateria resultado = null;
EntityManager em = this.getEntityManagerFactory().createEntityManager();
try {
Query q = em.createNativeQuery("Select * from valoracionmateria where idProfesor = ? and "
+ "idMateria = ? and idEstudiante = ?", ValoracionMateria.class);
q.setParameter(1, profesor.getId());
q.setParameter(2, materia.getId());
q.setParameter(3, estudiante.getId());
resultado = (ValoracionMateria) q.getSingleResult();
}
catch (Exception ex) {
}
em.close();
return resultado;
}
}

View File

@@ -0,0 +1,32 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.pojos;
import com.fasterxml.jackson.annotation.JsonUnwrapped;
import tutorialJava.modelosBasesDeDatosComunesJPA.evaluacionCentroEducativo.Profesor;
public class ProfesorPOJO {
@JsonUnwrapped
private Profesor profesor;
private int idTipologiaSexo = 0;
/**
* @param profesor
* @param idTipologiaSexo
*/
public ProfesorPOJO(Profesor profesor) {
super();
this.profesor = profesor;
if (profesor.getTipologiaSexo() != null) {
this.idTipologiaSexo = profesor.getTipologiaSexo().getId();
}
}
public Profesor getProfesor() {
return profesor;
}
public int getIdTipologiaSexo() {
return idTipologiaSexo;
}
}

View File

@@ -0,0 +1,112 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.poblacionPorProvincias;
import java.io.Serializable;
import javax.persistence.*;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import java.util.Date;
/**
* The persistent class for the persona database table.
*
*/
@Entity
@Table(name="persona")
@NamedQuery(name="Persona.findAll", query="SELECT p FROM Persona p")
public class Persona extends Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private boolean activo;
@Column(name="apellido1")
private String primerApellido;
@Column(name="apellido2")
private String segundoApellido;
private int edad;
@Temporal(TemporalType.DATE)
private Date fechaNacimiento;
private String nombre;
//bi-directional many-to-one association to Provincia
@ManyToOne
@JoinColumn(name="idProvincia")
private Provincia provincia;
public Persona() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public boolean getActivo() {
return this.activo;
}
public void setActivo(boolean activo) {
this.activo = activo;
}
public String getPrimerApellido() {
return this.primerApellido;
}
public void setPrimerApellido(String primerApellido) {
this.primerApellido = primerApellido;
}
public String getSegundoApellido() {
return this.segundoApellido;
}
public void setSegundoApellido(String segundoApellido) {
this.segundoApellido = segundoApellido;
}
public int getEdad() {
return this.edad;
}
public void setEdad(int edad) {
this.edad = edad;
}
public Date getFechaNacimiento() {
return this.fechaNacimiento;
}
public void setFechaNacimiento(Date fechaNacimiento) {
this.fechaNacimiento = fechaNacimiento;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public Provincia getProvincia() {
return this.provincia;
}
public void setProvincia(Provincia provincia) {
this.provincia = provincia;
}
}

View File

@@ -0,0 +1,78 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.poblacionPorProvincias;
import java.io.Serializable;
import javax.persistence.*;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import java.util.List;
/**
* The persistent class for the provincia database table.
*
*/
@Entity
@Table(name="provincia")
@NamedQuery(name="Provincia.findAll", query="SELECT p FROM Provincia p")
public class Provincia extends Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String descripcion;
//bi-directional many-to-one association to Persona
@OneToMany(mappedBy="provincia")
private List<Persona> personas;
public Provincia() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getDescripcion() {
return this.descripcion;
}
public void setDescripcion(String descripcion) {
this.descripcion = descripcion;
}
public List<Persona> getPersonas() {
return this.personas;
}
public void setPersonas(List<Persona> personas) {
this.personas = personas;
}
public Persona addPersona(Persona persona) {
getPersonas().add(persona);
persona.setProvincia(this);
return persona;
}
public Persona removePersona(Persona persona) {
getPersonas().remove(persona);
persona.setProvincia(null);
return persona;
}
@Override
public String toString() {
return this.descripcion;
}
}

View File

@@ -0,0 +1,131 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.poblacionPorProvincias.controladores;
import java.time.ZoneId;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.Date;
import java.util.GregorianCalendar;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.Utils;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.poblacionPorProvincias.Persona;
import tutorialJava.modelosBasesDeDatosComunesJPA.poblacionPorProvincias.Provincia;
public class PersonaControlador extends Controlador {
private static PersonaControlador controller = null;
public PersonaControlador() {
super(Persona.class, "PoblacionProvincial");
}
/**
*
* @return
*/
public static PersonaControlador getControlador () {
if (controller == null) {
controller = new PersonaControlador();
}
return controller;
}
/**
*
*/
public Provincia find (int id) {
return (Provincia) super.find(id);
}
/**
*
* @return
*/
public List<Persona> findAllPersonas () {
List<Persona> entities = new ArrayList<Persona>();
EntityManager em = getEntityManagerFactory().createEntityManager();
try {
Query q = em.createNativeQuery("SELECT * FROM persona", Persona.class);
entities = (List<Persona>) q.getResultList();
}
catch (NoResultException nrEx) {
}
em.close();
return entities;
}
// Arrays para generación de personas al azar
private static String nombres[] = new String[] {"Eva", "Juan", "Carmen", "Pablo", "Rafa", "Pilar", "Pedro",
"Lola", "Casimiro", "Gertrudis", "Eustaquio", "Gerarda", "Nepomunosio", "Argimira", "Ascensio", "Baltasara", "Baudilio", "Bernabea"};
private static String apellidos[] = new String[] {"Gonzalez", "Lopez", "Gutierrez", "Ruiz", "Jurado", "Carrasco", "Flores",
"Sanchez", "Bose", "Martin", "Martinez", "Santos", "Pozo", "Quijano", "Romero", "Pisano", "Cuevas", "Sanz"};
/**
*
*/
public static void inicializaDatosEnTabla () {
int personasPorProvincia = 100;
// Para cada provincia, eliminaré a las personas creadas y crearé nuevas
PersonaControlador.getControlador().deleteAll();
List<Provincia> provincias = ProvinciaControlador.getControlador().findAllProvincias();
for (Provincia provincia : provincias) {
for (int i = 0; i < 100; i++) {
Persona persona = new Persona();
persona.setNombre(getStringAlAzar(nombres));
persona.setPrimerApellido(getStringAlAzar(apellidos));
persona.setSegundoApellido(getStringAlAzar(apellidos));
persona.setProvincia(provincia);
persona.setFechaNacimiento(getFechaAzar(1900, 2019));
persona.setEdad(calculaEdad(persona.getFechaNacimiento()));
persona.setActivo( (Utils.obtenerNumeroAzar(0, 100) <= 50)? true : false );
PersonaControlador.getControlador().persist(persona);
}
}
}
/**
*
* @param strings
* @return
*/
private static String getStringAlAzar (String strings[]) {
return strings[Utils.obtenerNumeroAzar(0, strings.length - 1)];
}
/**
*
* @return
*/
private static Date getFechaAzar (int anioMin, int anioMax) {
Calendar calendar = new GregorianCalendar(Utils.obtenerNumeroAzar(anioMin, anioMax) /*año*/, Utils.obtenerNumeroAzar(0, 11) /*mes*/, Utils.obtenerNumeroAzar(1, 31) /*día*/);
return calendar.getTime();
}
/**
*
* @return
*/
private static int calculaEdad (Date fechaNacimiento) {
return (int) ChronoUnit.YEARS.between(fechaNacimiento.toInstant().atZone(ZoneId.systemDefault()).toLocalDate(), new Date().toInstant().atZone(ZoneId.systemDefault()).toLocalDate());
}
}

View File

@@ -0,0 +1,93 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.poblacionPorProvincias.controladores;
import java.util.ArrayList;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.poblacionPorProvincias.Provincia;
public class ProvinciaControlador extends Controlador {
private static ProvinciaControlador controller = null;
public ProvinciaControlador() {
super(Provincia.class, "PoblacionProvincial");
}
/**
*
* @return
*/
public static ProvinciaControlador getControlador () {
if (controller == null) {
controller = new ProvinciaControlador();
}
return controller;
}
/**
*
*/
public Provincia find (int id) {
return (Provincia) super.find(id);
}
/**
*
* @return
*/
public List<Provincia> findAllProvincias () {
List<Provincia> entities = new ArrayList<Provincia>();
EntityManager em = getEntityManagerFactory().createEntityManager();
try {
Query q = em.createNativeQuery("SELECT * FROM provincia", Provincia.class);
entities = (List<Provincia>) q.getResultList();
}
catch (NoResultException nrEx) {
}
em.close();
return entities;
}
/**
*
*/
public static void inicializaDatosEnTabla () {
String nombresProvincias[] = new String[] {"Álava", "Albacete", "Alicante", "Almería", "Asturias", "Ávila", "Badajoz",
"Barcelona", "Burgos", "Cáceres", "Cádiz", "Cantabria", "Castellón", "Ciudad Real", "Córdoba", "Cuenca", "Gerona",
"Granada", "Guadalajara", "Guipúzcoa", "Huelva", "Huesca", "Islas Baleares", "Jaén", "La Coruña", "La Rioja",
"Las Palmas", "León", "Lérida", "Lugo", "Madrid", "Málaga", "Murcia", "Navarra", "Orense", "Palencia", "Pontevedra",
"Salamanca", "Segovia", "Sevilla", "Soria", "Tarragona", "Tenerife", "Teruel", "Toledo", "Valencia", "Valladolid",
"Vizcaya", "Zamora", "Zaragoza"};
Provincia entidades[] = new Provincia[nombresProvincias.length];
// Tenemos 50 provincias, si no se llega a tener todas, se eliminan los datos de la BBDD y se crea nuevamente
if (ProvinciaControlador.getControlador().findAll().size() != 50) {
// Elimino los datos de personas y después los de provincias
PersonaControlador.getControlador().deleteAll();
ProvinciaControlador.getControlador().deleteAll();
// Recorro el array de Strings, dando de alta entidades en la tabla
for (String nombreProvincia : nombresProvincias) {
Provincia provincia = new Provincia();
provincia.setDescripcion(nombreProvincia);
ProvinciaControlador.getControlador().persist(provincia);
}
}
}
}

View File

@@ -0,0 +1,131 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches;
import java.io.Serializable;
import javax.persistence.*;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import java.util.Date;
import java.util.List;
/**
* The persistent class for the cliente database table.
*
*/
@Entity
@NamedQuery(name="Cliente.findAll", query="SELECT c FROM Cliente c")
public class Cliente extends Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private boolean activo;
private String apellidos;
private String dniNie;
@Temporal(TemporalType.TIMESTAMP)
private Date fechaNac;
private String localidad;
private String nombre;
//bi-directional many-to-one association to Venta
@OneToMany(mappedBy="cliente")
private List<Venta> ventas;
public Cliente() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public boolean getActivo() {
return this.activo;
}
public void setActivo(boolean activo) {
this.activo = activo;
}
public String getApellidos() {
return this.apellidos;
}
public void setApellidos(String apellidos) {
this.apellidos = apellidos;
}
public String getDniNie() {
return this.dniNie;
}
public void setDniNie(String dniNie) {
this.dniNie = dniNie;
}
public Date getFechaNac() {
return this.fechaNac;
}
public void setFechaNac(Date fechaNac) {
this.fechaNac = fechaNac;
}
public String getLocalidad() {
return this.localidad;
}
public void setLocalidad(String localidad) {
this.localidad = localidad;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public List<Venta> getVentas() {
return this.ventas;
}
public void setVentas(List<Venta> ventas) {
this.ventas = ventas;
}
public Venta addVenta(Venta venta) {
getVentas().add(venta);
venta.setCliente(this);
return venta;
}
public Venta removeVenta(Venta venta) {
getVentas().remove(venta);
venta.setCliente(null);
return venta;
}
@Override
public String toString() {
return this.nombre + " " + this.apellidos;
}
}

View File

@@ -0,0 +1,103 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches;
import java.io.Serializable;
import javax.persistence.*;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import java.util.List;
/**
* The persistent class for the coche database table.
*
*/
@Entity
@NamedQuery(name="Coche.findAll", query="SELECT c FROM Coche c")
public class Coche extends Entidad implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String bastidor;
private String color;
private String modelo;
//bi-directional many-to-one association to Fabricante
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="idfabricante")
private Fabricante fabricante;
//bi-directional many-to-one association to Venta
@OneToMany(mappedBy="coche")
private List<Venta> ventas;
public Coche() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getBastidor() {
return this.bastidor;
}
public void setBastidor(String bastidor) {
this.bastidor = bastidor;
}
public String getColor() {
return this.color;
}
public void setColor(String color) {
this.color = color;
}
public String getModelo() {
return this.modelo;
}
public void setModelo(String modelo) {
this.modelo = modelo;
}
public Fabricante getFabricante() {
return this.fabricante;
}
public void setFabricante(Fabricante fabricante) {
this.fabricante = fabricante;
}
public List<Venta> getVentas() {
return this.ventas;
}
public void setVentas(List<Venta> ventas) {
this.ventas = ventas;
}
public Venta addVenta(Venta venta) {
getVentas().add(venta);
venta.setCoche(this);
return venta;
}
public Venta removeVenta(Venta venta) {
getVentas().remove(venta);
venta.setCoche(null);
return venta;
}
}

View File

@@ -0,0 +1,91 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches;
import java.io.Serializable;
import javax.persistence.*;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import java.util.List;
/**
* The persistent class for the concesionario database table.
*
*/
@Entity
@NamedQuery(name="Concesionario.findAll", query="SELECT c FROM Concesionario c")
public class Concesionario extends Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String cif;
private String localidad;
private String nombre;
//bi-directional many-to-one association to Venta
@OneToMany(mappedBy="concesionario")
private List<Venta> ventas;
public Concesionario() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getCif() {
return this.cif;
}
public void setCif(String cif) {
this.cif = cif;
}
public String getLocalidad() {
return this.localidad;
}
public void setLocalidad(String localidad) {
this.localidad = localidad;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public List<Venta> getVentas() {
return this.ventas;
}
public void setVentas(List<Venta> ventas) {
this.ventas = ventas;
}
public Venta addVenta(Venta venta) {
getVentas().add(venta);
venta.setConcesionario(this);
return venta;
}
public Venta removeVenta(Venta venta) {
getVentas().remove(venta);
venta.setConcesionario(null);
return venta;
}
}

View File

@@ -0,0 +1,95 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches;
import java.io.Serializable;
import javax.persistence.*;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import java.util.List;
/**
* The persistent class for the fabricante database table.
*
*/
@Entity
@NamedQuery(name="Fabricante.findAll", query="SELECT f FROM Fabricante f")
public class Fabricante extends Entidad implements Serializable {
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
private String cif;
private String nombre;
//bi-directional many-to-one association to Coche
@OneToMany(mappedBy="fabricante")
private List<Coche> coches;
public Fabricante() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public String getCif() {
return this.cif;
}
public void setCif(String cif) {
this.cif = cif;
}
public String getNombre() {
return this.nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public List<Coche> getCoches() {
return this.coches;
}
public void setCoches(List<Coche> coches) {
this.coches = coches;
}
public Coche addCoch(Coche coch) {
getCoches().add(coch);
coch.setFabricante(this);
return coch;
}
public Coche removeCoch(Coche coch) {
getCoches().remove(coch);
coch.setFabricante(null);
return coch;
}
@Override
public String toString() {
return nombre;
}
@Override
public boolean equals(Object obj) {
Fabricante f = (Fabricante) obj;
if (this.id == f.id) {
return true;
}
return false;
}
}

View File

@@ -0,0 +1,95 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches;
import java.io.Serializable;
import javax.persistence.*;
import tutorialJava.modelosBasesDeDatosComunesJPA.Entidad;
import java.util.Date;
/**
* The persistent class for the venta database table.
*
*/
@Entity
@NamedQuery(name="Venta.findAll", query="SELECT v FROM Venta v")
public class Venta extends Entidad implements Serializable {
private static final long serialVersionUID = 1L;
@Id
@GeneratedValue(strategy=GenerationType.AUTO)
private int id;
@Temporal(TemporalType.TIMESTAMP)
private Date fecha;
private float precioVenta;
//bi-directional many-to-one association to Cliente
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="idCliente")
private Cliente cliente;
//bi-directional many-to-one association to Coche
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="idCoche")
private Coche coche;
//bi-directional many-to-one association to Concesionario
@ManyToOne(fetch=FetchType.LAZY)
@JoinColumn(name="idConcesionario")
private Concesionario concesionario;
public Venta() {
}
public int getId() {
return this.id;
}
public void setId(int id) {
this.id = id;
}
public Date getFecha() {
return this.fecha;
}
public void setFecha(Date fecha) {
this.fecha = fecha;
}
public float getPrecioVenta() {
return this.precioVenta;
}
public void setPrecioVenta(float precioVenta) {
this.precioVenta = precioVenta;
}
public Cliente getCliente() {
return this.cliente;
}
public void setCliente(Cliente cliente) {
this.cliente = cliente;
}
public Coche getCoche() {
return this.coche;
}
public void setCoche(Coche coche) {
this.coche = coche;
}
public Concesionario getConcesionario() {
return this.concesionario;
}
public void setConcesionario(Concesionario concesionario) {
this.concesionario = concesionario;
}
}

View File

@@ -0,0 +1,57 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches.controladores;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches.Cliente;
public class ClienteControlador extends Controlador {
private static ClienteControlador controlador = null;
public ClienteControlador () {
super(Cliente.class, "VentaDeCoches");
}
/**
*
* @return
*/
public static ClienteControlador getControlador () {
if (controlador == null) {
controlador = new ClienteControlador();
}
return controlador;
}
/**
*
*/
public Cliente find (int id) {
return (Cliente) super.find(id);
}
public List<Cliente> findAllClientes () {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Cliente c", Cliente.class);
List<Cliente> resultado = (List<Cliente>) q.getResultList();
em.close();
return resultado;
}
public static String toString (Cliente cliente) {
return cliente.getNombre() + " " + cliente.getApellidos();
}
}

View File

@@ -0,0 +1,159 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches.controladores;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches.Coche;
public class CocheControlador extends Controlador {
private static CocheControlador controlador = null;
public CocheControlador () {
super(Coche.class, "VentaDeCoches");
}
/**
*
* @return
*/
public static CocheControlador getControlador () {
if (controlador == null) {
controlador = new CocheControlador();
}
return controlador;
}
/**
*
*/
public Coche find (int id) {
return (Coche) super.find(id);
}
/**
*
* @return
*/
public Coche findFirst () {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Coche c order by c.id", Coche.class);
Coche resultado = (Coche) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Coche findLast () {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Coche c order by c.id desc", Coche.class);
Coche resultado = (Coche) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Coche findNext (Coche c) {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Coche c where c.id > :idActual order by c.id", Coche.class);
q.setParameter("idActual", c.getId());
Coche resultado = (Coche) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Coche findPrevious (Coche c) {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Coche c where c.id < :idActual order by c.id desc", Coche.class);
q.setParameter("idActual", c.getId());
Coche resultado = (Coche) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @param coche
* @return
*/
public boolean exists(Coche coche) {
EntityManager em = getEntityManagerFactory().createEntityManager();
boolean ok = true;
try {
Query q = em.createNativeQuery("SELECT * FROM tutorialjavacoches.coche where id = ?", Coche.class);
q.setParameter(1, coche.getId());
coche = (Coche) q.getSingleResult();
}
catch (NoResultException ex) {
ok = false;
}
em.close();
return ok;
}
public List<Coche> findAllCoches () {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Coche c", Coche.class);
List<Coche> resultado = (List<Coche>) q.getResultList();
em.close();
return resultado;
}
public static String toString (Coche coche) {
return coche.getFabricante() + " " + coche.getModelo() + " - " + coche.getBastidor();
}
}

View File

@@ -0,0 +1,139 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches.controladores;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches.Concesionario;
public class ConcesionarioControlador extends Controlador {
private static ConcesionarioControlador controlador = null;
public ConcesionarioControlador () {
super(Concesionario.class, "VentaDeCoches");
}
/**
*
* @return
*/
public static ConcesionarioControlador getControlador () {
if (controlador == null) {
controlador = new ConcesionarioControlador();
}
return controlador;
}
/**
*
*/
public Concesionario find (int id) {
return (Concesionario) super.find(id);
}
/**
*
* @return
*/
public Concesionario findFirst () {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Concesionario c order by c.id", Concesionario.class);
Concesionario resultado = (Concesionario) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Concesionario findLast () {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Concesionario c order by c.id desc", Concesionario.class);
Concesionario resultado = (Concesionario) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Concesionario findNext (Concesionario c) {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Concesionario c where c.id > :idActual order by c.id", Concesionario.class);
q.setParameter("idActual", c.getId());
Concesionario resultado = (Concesionario) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Concesionario findPrevious (Concesionario c) {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Concesionario c where c.id < :idActual order by c.id desc", Concesionario.class);
q.setParameter("idActual", c.getId());
Concesionario resultado = (Concesionario) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
public List<Concesionario> findAllConcesionarios () {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Concesionario c", Concesionario.class);
List<Concesionario> resultado = (List<Concesionario>) q.getResultList();
em.close();
return resultado;
}
public static String toString (Concesionario concesionario) {
return "Id: " + concesionario.getId() + " - Nombre: " + concesionario.getNombre() +
" - CIF: " + concesionario.getCif() + " - Localidad: " + concesionario.getLocalidad();
}
}

View File

@@ -0,0 +1,159 @@
package tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches.controladores;
import java.util.List;
import javax.persistence.EntityManager;
import javax.persistence.NoResultException;
import javax.persistence.Query;
import tutorialJava.modelosBasesDeDatosComunesJPA.Controlador;
import tutorialJava.modelosBasesDeDatosComunesJPA.ventaDeCoches.Fabricante;
public class FabricanteControlador extends Controlador {
private static FabricanteControlador controlador = null;
public FabricanteControlador () {
super(Fabricante.class, "VentaDeCoches");
}
/**
*
* @return
*/
public static FabricanteControlador getControlador () {
if (controlador == null) {
controlador = new FabricanteControlador();
}
return controlador;
}
/**
*
*/
public Fabricante find (int id) {
return (Fabricante) super.find(id);
}
/**
*
* @return
*/
public Fabricante findFirst () {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Fabricante c order by c.id", Fabricante.class);
Fabricante resultado = (Fabricante) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Fabricante findLast () {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Fabricante c order by c.id desc", Fabricante.class);
Fabricante resultado = (Fabricante) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Fabricante findNext (Fabricante c) {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Fabricante c where c.id > :idActual order by c.id", Fabricante.class);
q.setParameter("idActual", c.getId());
Fabricante resultado = (Fabricante) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @return
*/
public Fabricante findPrevious (Fabricante c) {
try {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Fabricante c where c.id < :idActual order by c.id desc", Fabricante.class);
q.setParameter("idActual", c.getId());
Fabricante resultado = (Fabricante) q.setMaxResults(1).getSingleResult();
em.close();
return resultado;
}
catch (NoResultException nrEx) {
return null;
}
}
/**
*
* @param coche
* @return
*/
public boolean exists(Fabricante fab) {
EntityManager em = getEntityManagerFactory().createEntityManager();
boolean ok = true;
try {
Query q = em.createNativeQuery("SELECT * FROM tutorialjavacoches.coche where id = ?", Fabricante.class);
q.setParameter(1, fab.getId());
fab = (Fabricante) q.getSingleResult();
}
catch (NoResultException ex) {
ok = false;
}
em.close();
return ok;
}
public List<Fabricante> findAllFabricantes () {
EntityManager em = getEntityManagerFactory().createEntityManager();
Query q = em.createQuery("SELECT c FROM Fabricante c", Fabricante.class);
List<Fabricante> resultado = (List<Fabricante>) q.getResultList();
em.close();
return resultado;
}
public static String toString (Fabricante fabricante) {
return fabricante.getNombre() + " " + fabricante.getCif();
}
}