Você está aqui: Hibernate ::: Classes e Componentes ::: Session |
Como persistir (gravar) um objeto de uma classe usando o método save() da interface SessionQuantidade de visualizações: 9931 vezes |
Uma das operações mais comuns em Hibernate é a persistência (gravação) de instâncias transient (temporárias) de classes. Para isso podemos usar o método save() da interface Session. Veja sua assinatura:---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- public Serializable save(Object object) throws HibernateException Embora o retorno do método save() seja um objeto que implementa a interface Serializable, em geral tal retorno não é usado. Veja um trecho de código no qual gravamos em uma tabela usuarios uma instância de uma classe chamada Usuario: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
package estudos_hibernate;
import entidades.Usuario;
import org.hibernate.Session;
import org.hibernate.SessionFactory;
import org.hibernate.Transaction;
import org.hibernate.cfg.Configuration;
public class Main {
public static void main(String[] args) {
Session session = null;
Transaction tx = null;
try {
// aqui nós lemos as configurações do arquivo hibernate.cfg.xml
// e deixamos o Hibernate pronto para trabalhar
SessionFactory factory = new
Configuration().configure().buildSessionFactory();
// abre uma nova sessão
session = factory.openSession();
// inicia uma transação
tx = session.beginTransaction();
// vamos criar uma nova instância da classe Usuario
// e definir valores para seus atributos
// note que não precisamos atribuir valores para
// o atributo id
Usuario u = new Usuario();
u.setNome("Osmar J. Silva");
u.setEmail("osmar@arquivodecodigos.net");
u.setSenha("1234");
session.save(u); // vamos salvar o usuário
session.flush();
// e salva as alterações no banco de dados
tx.commit();
}
catch(Exception e) {
// houve algum problema? vamos retornar o banco de dados
// ao seu estado anterior
if(tx != null)
tx.rollback();
System.out.println(e.getMessage());
}
finally {
session.close();
}
}
}
Ao executarmos este código o Hibernate gravará o usuário na tabela por meio das geração dos seguintes comandos SQL: ---------------------------------------------------------------------- Se precisar de ajuda com o código abaixo, pode me chamar no WhatsApp +55 (62) 98553-6711 (Osmar) ---------------------------------------------------------------------- Hibernate: select max(id) from usuarios Hibernate: insert into usuarios (nome, email, senha, id) values (?, ?, ?, ?) Note que o método save() atribui um identificador (id do último registro inserido na base de dados) à instância da classe que está sendo gravada. Se for necessário, o id da instância pode ser obtido da seguinte forma: ----------------------------------------------------------------------
Se precisar de ajuda com o código abaixo, pode me chamar
no WhatsApp +55 (62) 98553-6711 (Osmar)
----------------------------------------------------------------------
session.save(u); // vamos salvar o usuário
System.out.println("Gravei um usuário com o id: " +
u.getId());
|
|
|
Veja mais Dicas e truques de Hibernate |
Dicas e truques de outras linguagens |
E-Books em PDF |
||||
|
||||
|
||||
Linguagens Mais Populares |
||||
|
1º lugar: Java |




