Caro colegas, estou precisando de uma ajudinha…
gostaria de eliminar os botões gravar e alterar e criar um com o nome salvar que faça as duas coisas juntas, ouvi falar em transação mais não sei como usar vcs podem me ajudar?
desde ja agradeço 
Criar um botão para gravar e alterar usando Transação
10 Respostas
Sinceramente, não deu para entender direito…
Mas se você usa Hibernate existe um método na Session chamado “saveOrUpdate()”.
Ele insere no banco se não existe e atualiza se já existe.
Outra opção também seria você mesmo fazer o controle interno, armazenando em uma variável se está alterando ou inserindo.
Falow
Desculpe pela falta de expressão na minha mensagem!!!
Estou usando Struts, e gostaria de saber como faço para criar um botão salvar que tenha a ação de gravar se não existir no banco ou alterar se ja existe, falow
Ahh certo entendi.
Bom como disse anteriormente, se você estiver utilizando o Hibernate para persistência, use o “saveOrUpdate()”.
Agora se estiver fazendo a persistência na mão, creio que terá que fazer um SELECT para saber se o registro existe e só então decidir pelo INSERT ou UPDATE.
Falow
Primeira pergunta, você esta utilizando o Hibernate???
Se estiver é só utilizar o método saveOrUpdate(), senão tente utilizar a mesma lógica do saveOrUpdate.
Possivelmente quando você esta fazendo uma alteração de um registro você deve exibir o campo id(primary key) para o cliente, logo, image o seguinte quando o usuario clicar em salvar, caso o objeto tenho o campo id preenchido realize o método que faz a atualização, no caso contrario insira o registro no banco de dados. 
Ta mais eu estou usando STRUTS nunca usei Hibernate, porém não seria melhor deixar para o banco analizar se é para gravar ou alterar? então seria melhor usar Transações, eu estou fazendo a persistencia na mão, só não sei como usar Transação, compreendem! Falou 
Desculpa cara, mas sempre trabalhei com o Hibernate pra controlar essas coisas. Acredito que você criou uma conexão JDBC e esteja fazendo as inclusões e alterações via SQL ou HQL, só trabalhei dessa forma no curso que fiz porem foi muito pouco.
Se você esta fazendo apenas para aprender, aconselho a dar uma estudada no hibernate, existe milhares de exemplos de CRUDs que utilizam hibernate na net, o meu conselho é procurar no site da caelum o download a apostila de java básico (que não é tão básica).
porém não seria melhor deixar para o banco analizar se é para gravar ou alterar?
Se você estiver usando SQL(não faça isso), o banco não analiza nada, ou você passa um INSERT ou UPDATE(por favor, alguem me corrija se eu estiver errado). Como você tinha dito que já havia criado os métodos de inclusão e alteração acho que é só direcionar para o método correto dependendo da existencia ou não de um id ou identificador.
Trabalhar com hibernate é muito mais fácil do que parece e deixa o seu sistema muito mais profissional. Na apostila da Caelum você vai aprender a utilizar transação e sessão da forma como a maioria das empresas usam hoje. Lá também existem apostilas destinadas à programação para WEB, acho que você aprenderia muito mais facilmente.
Valeu cara, vou dar uma olhada sim, pois ja vi muitas pessoas neste caminho do Hibernate, então o melhor que faço e ir pelo caminho certo, vou dar uma estuda na apostila e quando eu tiver algo pronto vou colocar aqui para tirar dúvidas de pessoas que estiverem com a mesma. Falow
Bom dia Colegas !
Como foi dito, se você esta utilizando JDBC para realizar as persistências acredito que tenha uma classe DAO que faz isso, e nela deve ter um método gravar um novo registro e outro para salvar.
Você pode manter os dois métodos ou juntar em um só… e como foi sugerido verificar através do campo ID do objeto… se ele estiver preenchido realiza o UPDATE se não estiver faz o INSERT.
Caso já tenha os dois métodos criados e funcionando acho que a menor alteração seria fazer o seguinte:
public void salvaOuInsere(ObjetoASerGravado obj) {
if (obj.id == null)
insereNovo(obj);
else
salva(obj);
Então suas classes passariam a chamar sempre este novo método “salvaOuInsere”.
O que não entendi foi o que transações tem a ver com isso… pode explicar melhor ?
Bom, acho que esta solução seria interessante para o caso de já estar com o sistema pronto e não ter que trocar tudo para hibernate de uma vez só…
[]s
zeed01, respondendo a sua dúvida sobre a transação eu me expressei mal.
gostei da sua idéia vou dar uma olhada nessa opção também, todo o tipo de ajuda é ideal quando se está aprendendo! porém muitas vezes confunde porque cada pessoa pensa de um jeito, mais valeu, mais uma vez por me ajudarem, podem colocar outras soluções se houver eu agradeço. 
Boa tarde Colegas !
A minha idéia é essa mesmo… tentar ajudar.
Mas continuo sem entender o que você quis dizer com transações… rsrsrs
[]s