Metodo salvar - Hibernateutil

6 respostas
S

Boa noite,

Ja configurei o Hibernate, agora preciso criar um método, para salvar os dados inseridos no formulário no BD. Ja procurei um modelo mas não consigo. Tenho o hibernateutil:

package br.com.divulgando.s21_projweb2011.g289.Conn;

import org.hibernate.cfg.AnnotationConfiguration;
import org.hibernate.SessionFactory;

/**

  • Hibernate Utility class with a convenient method to get Session Factory object.

  • @author Administrador
    */
    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();
    
    } catch (Throwable ex) {
    
    // Log the exception.
    
    System.err.println(Initial SessionFactory creation failed. + ex);
    
    throw new ExceptionInInitializerError(ex);
    
    }
    
    }
    
    public static SessionFactory getSessionFactory() {
    
    return sessionFactory;
    
    }
    
    }
    

[size=18]Mapeamento do Hibernate e pojos[/size]

package br.com.divulgando.s21_projweb2011.g289.Conn;
// Generated 18/11/2011 14:59:59 by Hibernate Tools 3.2.1.GA

/**

  • Cadastro generated by hbm2java
    */
    public class Cadastro implements java.io.Serializable {

    private Integer id;
    
    private String email;
    
    private String nomeRem;
    
    private String cellRem;
    
    private String assinatura;
    
    private String senha;
    

    public Cadastro() {
    }

    public Cadastro(String email, String nomeRem, String cellRem, String senha) {
    
    this.email = email;
    
    this.nomeRem = nomeRem;
    
    this.cellRem = cellRem;
    
    this.senha = senha;
    
    }
    
    public Cadastro(String email, String nomeRem, String cellRem, String assinatura, String senha) {
    
    this.email = email;
    
    this.nomeRem = nomeRem;
    
    this.cellRem = cellRem;
    
    this.assinatura = assinatura;
    
    this.senha = senha;
    
    }
    
    public Integer getId() {
    
    return this.id;
    
    }
    
    public void setId(Integer id) {
    
    this.id = id;
    
    }
    
    public String getEmail() {
    
    return this.email;
    
    }
    
    public void setEmail(String email) {
    
    this.email = email;
    
    }
    
    public String getNomeRem() {
    
    return this.nomeRem;
    
    }
    
    public void setNomeRem(String nomeRem) {
    
    this.nomeRem = nomeRem;
    
    }
    
    public String getCellRem() {
    
    return this.cellRem;
    
    }
    
    public void setCellRem(String cellRem) {
    
    this.cellRem = cellRem;
    
    }
    
    public String getAssinatura() {
    
    return this.assinatura;
    
    }
    
    public void setAssinatura(String assinatura) {
    
    this.assinatura = assinatura;
    
    }
    
    public String getSenha() {
    
    return this.senha;
    
    }
    

    public void setSenha(String senha) {
    this.senha = senha;

Mas não sei quais parâmetros para criar o método para salvar no bd, alguém pode me passar um modelo?

6 Respostas

yoshikichi

No site da Caelum existe duas apostila free que fala sobre:
caelum.com.br

Procure pelo cursos FJ21 e 28
Acho que te ajudaria!
A propria referencia do Hibernate tb aborda.

yoshikichi

Só mais uma coisa, coloque seus códigos dentro da tag “CODE”, no editor do GUJ

S

Obrigada!!!

Mas queria um modelo de um metodo!!!

M

Faça algo assim.

public void saveOrUpdate(Object t) throws Exception {
        Session session = null;
        Transaction tx = null;
            
           session = HibernateUtil.getSessionFactory().openSession();
            tx = session.beginTransaction();
            session.saveOrUpdate(t);
            tx.commit();
            session.flush();
            session.close();
    }

Boa sorte

S
Murilo_Ferreira:
Faça algo assim.
public void saveOrUpdate(Object t) throws Exception {
        Session session = null;
        Transaction tx = null;
            
           session = HibernateUtil.getSessionFactory().openSession();
            tx = session.beginTransaction();
            session.saveOrUpdate(t);
            tx.commit();
            session.flush();
            session.close();
    }

Boa sorte

Vlw!!!

Mas aparece esse erro:

java.lang.NullPointerException;

meu método :

package br.com.divulgando.s21_projweb2011.g289.torpdo.mbeans;

import br.com.divulgando.s21_projweb2011.g289.Conn.HibernateUtil;
import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import org.hibernate.Session;
import org.hibernate.Transaction;

/**
 *
 * @author Administrador
 */
@ManagedBean(name = "cadastro")
@SessionScoped
public class CadastroMB implements Serializable{
    private String email;
    private String nome_rem;
    private String cell_rem;
    private String assinatura;
    private String senha;
    private String rep_senha;
    
  

     
    
    public String getAssinatura() {
        return assinatura;
    }

    public void setAssinatura(String assinatura) {
        this.assinatura = assinatura;
    }

    public String getCell_rem() {
        return cell_rem;
    }

    public void setCell_rem(String cell_rem) {
        this.cell_rem = cell_rem;
    }



    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    public String getNome_rem() {
        return nome_rem;
    }

    public void setNome_rem(String nome_rem) {
        this.nome_rem = nome_rem;
    }

    public String getRep_senha() {
        return rep_senha;
    }

    public void setRep_senha(String rep_senha) {
        this.rep_senha = rep_senha;
    }

    public String getSenha() {
        return senha;
    }

    public void setSenha(String senha) {
        this.senha = senha;
    }
    
    
    public void saveOrUpdate(Object t) throws Exception {  
    Session session = null;  
    Transaction tx = null;  
          
       session = HibernateUtil.getSessionFactory().openSession();  
        tx = session.beginTransaction();  
        session.saveOrUpdate(t);  
        tx.commit();  
        session.flush();  
        session.close();  
    
    }
    
       
    public String cancelarCadastro(){
        
        setEmail("");
        setNome_rem("");
        setCell_rem("");
        setAssinatura("");
        setSenha("");
        setRep_senha("");
        
        
        return null;
    }

Meu formulário:

<ui:define name="content">
        <h:panelGrid columns="2">

            <h:outputLabel value="Email:"/>
            <h:outputLabel value="#{CadastroMB.email}"/>
            <h:outputLabel value="Nome:"/>
            <h:outputLabel value="#{CadastroMB.nome_rem}"/>
            <h:outputLabel value="Celular:"/>
            <h:outputLabel value="#{CadastroMB.cell_rem}"/>
            <h:outputLabel value="Assinatura:"/>
            <h:outputLabel value="#{CadastroMB.assinatura}"/>
            <h:outputLabel value="Senha:"/>
            <h:outputLabel value="#{CadastroMB.senha}"/>
            <h:outputLabel value="Repita a senha:"/>
            <h:outputLabel value="#{CadastroMB.rep_senha}"/>
            <h:form>
                <h:commandButton value="Confirmar" action="#{cadastro.saveOrUpdate(t)}"/>
            </h:form>


        </h:panelGrid>
    </ui:define>
yoshikichi

Murilo_Ferreira:
Faça algo assim.

public void saveOrUpdate(Object t) throws Exception {
        Session session = null;
        Transaction tx = null;
            
           session = HibernateUtil.getSessionFactory().openSession();
            tx = session.beginTransaction();
            session.saveOrUpdate(t);
            tx.commit();
            session.flush();
            session.close();
    }

Boa sorte

Só uma coisa, o commit já cham o flush da session.
então com vc já usou o commit não precisa chamar o flush abaixo:

tx.commit();
            session.flush();

Na teoria se vc quer realizar um flush ele vem antes do Commit
Abraços

Criado 24 de novembro de 2011
Ultima resposta 25 de nov. de 2011
Respostas 6
Participantes 3