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: 9790 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 para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 para ajustar o código abaixo de acordo com as suas necessidades, chama a gente no WhatsApp +55 (62) 98553-6711 (Osmar) Ah, e se puder, faça uma DOAÇÃO de qualquer valor para nos ajudar a manter o site livre de anúncios. Ficaremos eternamente gratos ;-) Nosso PIX é: osmar@arquivodecodigos.com.br ---------------------------------------------------------------------- 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 |