Предполагается, что моя программа берет другую информацию от пользователя, чтобы сохранить людей в таблице, но не сохраняет информацию в таблице. Когда я прошу ее напечатать, она просто печатает таблицу пустую.И когда я просматриваю базу данных и просматриваю данные в таблице, она также не сохраняет их там.
Вот HTML-код ввода информации.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:h="http://xmlns.jcp.org/jsf/html"
xmlns:p="http://primefaces.org/ui">
<body>
<ui:composition template="./plantilla/plantilla.xhtml">
<ui:define name="head">
</ui:define>
<ui:define name="content">
<h4>Ingresar Información</h4>
<hr/>
<h:form id="formulario">
<div class="form-horizontal">
<div class="form-group">
<h:outputLabel value="Identificación" for="id" class="control-label col-sm-3"/>
<div class="col-sm-3">
<h:inputText id="id" required="true" class="form-control"
requiredMessage="Campo requerido"
value="#{ingresar.identificacion}">
</h:inputText>
<h:message for="id" class="text-danger"/>
</div>
</div>
<div class="form-group">
<h:outputLabel value="Nombre" for="nombre" class="control-label col-sm-3"/>
<div class="col-sm-3">
<h:inputText id="nombre" required="true" class="form-control"
requiredMessage="Campo requerido"
value="#{ingresar.nombre}">
</h:inputText>
<h:message for="nombre" class="text-danger"/>
</div>
</div>
<div class="form-group">
<h:outputLabel value="Apellido 1" for="apellido1" class="control-label col-sm-3"/>
<div class="col-sm-3">
<h:inputText id="apellido1" required="true" class="form-control"
requiredMessage="Campo requerido"
value="#{ingresar.apellido1}">
</h:inputText>
<h:message for="apellido1" class="text-danger"/>
</div>
</div>
<div class="form-group">
<h:outputLabel value="Apellido 2" for="apellido2" class="control-label col-sm-3"/>
<div class="col-sm-3">
<h:inputText id="apellido2" required="true" class="form-control"
requiredMessage="Campo requerido"
value="#{ingresar.apellido2}">
</h:inputText>
<h:message for="apellido2" class="text-danger"/>
</div>
</div>
<div style="text-align: center;">
<h:commandButton value="Guardar" action="#{ingresar.guardarInformacion}"/>
</div>
</div>
</h:form>
</ui:define>
</ui:composition>
</body>
Вот HTML-код для отображения таблицы данных.
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:h="http://xmlns.jcp.org/jsf/html">
<body>
<ui:composition template="./plantilla/plantilla.xhtml">
<ui:define name="content">
<p:dataTable var="persona" value="#{verestudiante.personas}" rows="5" paginator="true">
<p:column headerText="Identificacion">
<h:outputText value="#{personas.identificacion}"/>
</p:column>
<p:column headerText="Nombre">
<h:outputText value="#{personas.nombre}"/>
</p:column>
<p:column headerText="Primer Apellido">
<h:outputText value="#{personas.apellido1}"/>
</p:column>
<p:column headerText="Segundo Apellido">
<h:outputText value="#{personas.apellido2}"/>
</p:column>
</p:dataTable>
</ui:define>
</ui:composition>
</body>
Вот POJO со всеми переменными от людей, которых мы вводим в базу данных.
public class Persona {
private int idPersona;
private String nombre;
private String apellido1;
private String apellido2;
private String identificacion;
public static Persona getPersona(Persona personaParametro){
Persona persona = new Persona();
persona.idPersona = personaParametro.idPersona;
persona.nombre = personaParametro.nombre;
persona.apellido1 = personaParametro.apellido1;
persona.apellido2 = personaParametro.apellido2;
persona.identificacion = personaParametro.identificacion;
return persona;
}
public int getIdPersona() {
return idPersona;
}
public void setIdPersona(int idPersona) {
this.idPersona = idPersona;
}
public String getNombre() {
return nombre;
}
public void setNombre(String nombre) {
this.nombre = nombre;
}
public String getApellido1() {
return apellido1;
}
public void setApellido1(String apellido1) {
this.apellido1 = apellido1;
}
public String getApellido2() {
return apellido2;
}
public void setApellido2(String apellido2) {
this.apellido2 = apellido2;
}
public String getIdentificacion() {
return identificacion;
}
public void setIdentificacion(String identificacion) {
this.identificacion = identificacion;
}
}
Вот HibernateUtil, который мы использовали в CRUD.
public class HibernateUtil {
private static final SessionFactory sessionFactory;
static {
try {
// Create the SessionFactory from standard (hibernate.cfg.xml)
// config file.
//sessionFactory = new AnnotationConfiguration().configure().buildSessionFactory();
sessionFactory = new org.hibernate.cfg.Configuration().configure().buildSessionFactory();
} catch (Throwable ex) {
// Log the exception.
System.err.println("Initial SessionFactory creation failed." + ex);
throw new ExceptionInInitializerError(ex);
}
}
public static SessionFactory getSessionFactory() {
return sessionFactory;
}
}
Управляемый компонент (requiredScope), который мы использовали для создания списка людей, для вызова которыхHTML dataTable и таблица в базе данных.
public class verestudiante{
private List<Estudiante> personas = new ArrayList<Estudiante>();
public List<Estudiante> getPersonas() {
return personas;
}
public verestudiante() {
}
@PostConstruct
public void init(){
EstudianteGestion personaGestion = new EstudianteGestion ();
personas = personaGestion.readPersonas();
}
}
Здесь - управляемый компонент (requiredScope), который мы использовали для вставки информации в первый код HTML.
/**
* Creates a new instance of ingresar
*/
public ingresar() {
}
public String guardarInformacion(){
PersonaGestion personaGestion = new PersonaGestion();
Persona persona = Persona.getPersona(this);
personaGestion.createPersona(persona);
return "verestudiante";
}
}
И, наконец, вот КРУД.
public class PersonaGestion {
public void createPersona(Persona persona){
Session session = null;
try{
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
session = sessionFactory.openSession();
session.beginTransaction();
persona.setIdPersona((ultimoId() + 1));
session.save(persona);
session.getTransaction().commit();
}
catch(Exception e){
System.out.println("Error: " + e.getMessage());
}
finally{
session.close();
}
}
public int ultimoId(){
Session session = null;
try{
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
session = sessionFactory.openSession();
session.beginTransaction();
Persona ultimo = (Persona) session.createCriteria(Persona.class)
.addOrder(Order.desc("idPersona")).setMaxResults(1).uniqueResult();
session.getTransaction().commit();
return ultimo.getIdPersona();
}
catch(Exception e){
System.out.println("Error: " + e.getMessage());
}
finally{
session.close();
}
return -1;
}
public List<Persona> readPersonas(){
Session session = null;
try{
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
session = sessionFactory.openSession();
session.beginTransaction();
//Leer la informacion que esta en BD
Query query = session.createQuery("from Tabla");
List<Persona> lista = query.list();
session.getTransaction().commit();
return lista;
}
catch(Exception e){
System.out.println("Error: " + e.getMessage());
}
finally{
session.close();
}
return null;
}
public Persona readPersona(String identificacion){
Session session = null;
try{
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
session = sessionFactory.openSession();
session.beginTransaction();
//leer una sola persona por identificacion
Query query = session.createQuery("from Persona where identificacion = :identificacionParametro");
query.setParameter("identificacionParametro", identificacion);
List<Persona> lista = query.list();
if(lista.size() > 0)
return lista.get(0);
session.getTransaction().commit();
}
catch(Exception e){
System.out.println("Error: " + e.getMessage());
}
finally{
session.close();
}
return null;
}
public void updatePersona(Persona persona){
Session session = null;
try{
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
session = sessionFactory.openSession();
session.beginTransaction();
session.update(persona);
session.getTransaction().commit();
}
catch(Exception e){
System.out.println("Error: " + e.getMessage());
}
finally{
session.close();
}
}
public void deletePersona(Persona persona){
Session session = null;
try{
SessionFactory sessionFactory = HibernateUtil.getSessionFactory();
session = sessionFactory.openSession();
session.beginTransaction();
session.delete(persona);
session.getTransaction().commit();
}
catch(Exception e){
System.out.println("Error: " + e.getMessage());
}
finally{
session.close();
}
}
}