Estou querendo implementar o botão salvar mais estou tendo dificuldades…
public void salvar() {
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();
d[color=red]ao.adiciona(c1); // TODO add your handling code here:[/color]
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!!");
}
}
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
public void alterar() throws SQLException{
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();
[color=red]dao.altera(c1);[/color]
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…
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