Não consigo implementar Botão salvar hora com insert hora com update...[resolvido]
8 respostas
caioamante
Estou querendo implementar o botão salvar mais estou tendo dificuldades…
publicvoidsalvar(){try{Contatoc1=newContato();c1.setNome(jTNome.getText().toUpperCase());c1.setEndereco(jTEndereco.getText().toUpperCase());c1.setTel(jTTelefone.getText().toUpperCase());c1.setEmail(jTEmail.getText().toUpperCase());c1.setSexo(jCSexo.getSelectedItem().toString());ContatoDaodao=newContatoDao();d[color=red]ao.adiciona(c1);// TODO add your handling code here:[/color]JOptionPane.showMessageDialog(null,"Contato cadastrado com sucesso!!!");}catch(SQLExceptionex){Logger.getLogger(jTAgendaContatos.class.getName()).log(Level.SEVERE,null,ex);JOptionPane.showMessageDialog(null,"Ocorreu algum erro verifique!!");}}
Esse salvar funciona normalmente … porém só adiciona dados … eu gostaria que ele fosse acionado e verificasse se é um item novo ou uma alteração e executar.
Tenho o metodo alterar
mas fica estranho pois na verdade o alterar só deveria abrir os campos para editar… isso eu sei fazer… porem não sei configurar o salvar para hora incluir e hora alterar…
alguem pode dar uma luz…
pronto… será que agora alguem pode me ajudar?
valeuuu pessoall
saninaimayer
Cara, trate pela sua chave primária, se ela tiver setada no seu formulário quer dizer que vc executará um update, caso contrário será um insert. Pelo que vi você utiliza um número inteiro como chave, então fica fácil.
public void salvar() throws SQLException {
if (Long.valueOf(jTId.getText()) == null) {
try {
Contato c1 = new Contato();
c1.setNome(jTNome.getText().toUpperCase());
c1.setEndereco(jTEndereco.getText().toUpperCase());
c1.setTel(jTTelefone.getText().toUpperCase());
c1.setEmail(jTEmail.getText().toUpperCase());
c1.setSexo(jCSexo.getSelectedItem().toString());
ContatoDao dao = new ContatoDao();
dao.adiciona(c1); // TODO add your handling code here:
JOptionPane.showMessageDialog(null, "Contato cadastrado com sucesso!!!");
} catch (SQLException ex) {
Logger.getLogger(jTAgendaContatos.class.getName()).log(Level.SEVERE, null, ex);
JOptionPane.showMessageDialog(null, "Ocorreu algum erro verifique!!");
}
//insert
} else {
{
Contato c1 = new Contato();
c1.setId(Long.valueOf(jTId.getText()));
c1.setNome(jTNome.getText().toUpperCase());
c1.setEndereco(jTEndereco.getText().toUpperCase());
c1.setTel(jTTelefone.getText().toUpperCase());
c1.setEmail(jTEmail.getText().toUpperCase());
c1.setSexo(jCSexo.getSelectedItem().toString());
ContatoDao dao = new ContatoDao();
dao.altera(c1);
}
//update
}
}
O alterar está dando certinho porem o insert está dando problemas
Exception in thread "AWT-EventQueue-0" java.lang.NumberFormatException: For input string: ""
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:48)
at java.lang.Long.parseLong(Long.java:424)
at java.lang.Long.valueOf(Long.java:518)
at caio.forms.jTAgendaContatos.salvar(jTAgendaContatos.java:404)
at caio.forms.jTAgendaContatos.jBSalvarActionPerformed(jTAgendaContatos.java:305)
at caio.forms.jTAgendaContatos.access$300(jTAgendaContatos.java:32)
at caio.forms.jTAgendaContatos$4.actionPerformed(jTAgendaContatos.java:122)
at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
at java.awt.Component.processMouseEvent(Component.java:6216)
at javax.swing.JComponent.processMouseEvent(JComponent.java:3265)
at java.awt.Component.processEvent(Component.java:5981)
at java.awt.Container.processEvent(Container.java:2041)
at java.awt.Component.dispatchEventImpl(Component.java:4583)
at java.awt.Container.dispatchEventImpl(Container.java:2099)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4556)
at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4220)
at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4150)
at java.awt.Container.dispatchEventImpl(Container.java:2085)
at java.awt.Window.dispatchEventImpl(Window.java:2475)
at java.awt.Component.dispatchEvent(Component.java:4413)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Parece que ele está dando conflito no nulo tentei com o vazio’’ e nao deu tb ocorreu o mesmo erro…
essa verificação eu ja tinha tentado com ela… realmente está proximo mais estou quebrando a cabeça por isso pedi ajuda… valeu mesmo pessoal
S
sanirdz
deixa na linha 2 só:
Ele ta lançando exceção NumberFormatException pra converter de uma string vazia pra Long:
caioamante
publicvoidsalvar()throwsSQLException{Contatoc1=newContato();ContatoDaodao=newContatoDao();if(jTId.getText().equals("")){try{c1.setNome(jTNome.getText().toUpperCase());c1.setEndereco(jTEndereco.getText().toUpperCase());c1.setTel(jTTelefone.getText().toUpperCase());c1.setEmail(jTEmail.getText().toUpperCase());c1.setSexo(jCSexo.getSelectedItem().toString());dao.adiciona(c1);// TODO add your handling code here:JOptionPane.showMessageDialog(null,"Contato cadastrado com sucesso!!!");}catch(SQLExceptionex){Logger.getLogger(jTAgendaContatos.class.getName()).log(Level.SEVERE,null,ex);JOptionPane.showMessageDialog(null,"Ocorreu algum erro verifique!!");}//insert}else{{c1.setId(Long.valueOf(jTId.getText()));c1.setNome(jTNome.getText().toUpperCase());c1.setEndereco(jTEndereco.getText().toUpperCase());c1.setTel(jTTelefone.getText().toUpperCase());c1.setEmail(jTEmail.getText().toUpperCase());c1.setSexo(jCSexo.getSelectedItem().toString());dao.altera(c1);JOptionPane.showMessageDialog(null,"Contato alterado !!!");}//update}}