Código automatico com problema!

4 respostas
Nelsonjahn

Olá pessoal estou com um probleminha que acredito ser um pouco ignorante mas ja tentei de varias formas e não deu certo!
Veja estou com o código de inserir um novo registro abaixo, não tenho ele como auto numeração no banco, pois presciso que ele dê a sequencia dos codigos, veja

private void botao_inserirActionPerformed(java.awt.event.ActionEvent evt) {                                              
        tf_codigo.setText("");       
        tf_codcidade.setText("");
        tf_descricao.setText("");
        cb_uf.setSelectedItem("");
        tf_codigo.setEditable(false);
        tf_descricao.setEditable(true);        
        tf_codcidade.setEditable(true); 
        cb_uf.setEnabled(true);
        tf_codcidade.requestFocus();       
        tf_codcidade.requestFocus();
         try
           {
            con_cidade.executeSQL("select * from cidade");
            con_cidade.resultset.last();
            int ultimocod = con_cidade.resultset.getInt("codigo")+ 1;
            tf_codigo.setText(""+ultimocod)
            
           }                 
       catch(SQLException erro){
            JOptionPane.showMessageDialog(null,"Erro "+erro); 
            }
       // preencher_jtable();
        //atualiza_selecao_linha_ftable();        
        
    }

porém tenho meu metodo de salvar da seguinte maneira, se eu clickar em novo ele ja cria o próximo código até ai tudo bem, mas como eu deixo meu equals se minha caixa de texto teria que ficar com o novo codigo criado com o meu metodo acima. Desculpe a ignorancia mas estamos aqui justamente pra isso não!

private void botao_gravarKeyPressed(java.awt.event.KeyEvent evt) {                                        
        int tecla=evt.getKeyCode();          
        if (tecla==KeyEvent.VK_ENTER){  
       try
          {
               
            
          String sql = "", mensagem="";
         
         if(tf_codigo.getText().equals(""))
           {        
                sql = " INSERT into cidade(codigocid,descricao,uf) values ('"+
                 tf_codcidade.getText()+"','"+
                 tf_descricao.getText()+"','"+
                 cb_uf.getSelectedItem()+"')";
                 mensagem=" Gravação";
                 con_cidade.statement.executeUpdate(sql);
            }
         else{ 
             sql  = " UPDATE cidade set descricao='"+ tf_descricao.getText()+"',"+
                    "codigocid= '" + tf_codcidade.getText()+"',"+ 
                    "uf = '"+ cb_uf.getSelectedItem()+"' where codigo = "+ tf_codigo.getText();
                    mensagem=" Alteração";
         }
         con_cidade.statement.executeUpdate(sql);
         JOptionPane.showMessageDialog(null,mensagem +" realizada com sucesso");               
         con_cidade.resultset = con_cidade.statement.executeQuery("select * from cidade  ");
         con_cidade.executeSQL("select * from cidade order by "+ordenacao);
         con_cidade.resultset.first();
        
        }
        catch(SQLException erro)
        {
            JOptionPane.showMessageDialog(null,"Erro ao tentar gravar o registro...."); 
        }
        mostrar_dados();
        preencher_jtable();
        atualiza_selecao_linha_ftable();
        atualizaFoco();
      }
    }

4 Respostas

charleston10

Você esta usando Orientado a Objetos…?
Ta parecendo Estruturado, se for fazer assim em java, nao vai adiantar nada… só vai complicar as coisas…

E você esta fazendo o modo de Cadastro errado…
Cadê o PrepareStatement ?

Dê uma olhada…
http://www.guj.com.br/java/286031-inserir-dados-no-mysql-com-java#1512382

;]

Nelsonjahn

Olá primeiro muito obrigado, pela atenção, obrigado mesmo,
Assim na minha aplicação estaria funcionando se fosse código automatico direto do banco, ja fiz varios testes
só que mudei a forma de inserir para que quando eu inserir na verdade ele teria que ficar a caixa de texto vazia
mas como eu fiz o codigo direto na aplicação ai ele me traz o codigo na caixa de texto quando eu chamo novo cliente
no meu código .equals() ele teria que ficar com o novo codigo que cria quando dou inserir como deixaria ele se hoje tenho da forma descrita abaixo, claro sei que ele está como vazio, mas ja tentei de varias formas. se tens um exemplo agradeço.

String sql = "", mensagem="";
         
         if(tf_codigo.getText().equals(""))
charleston10

Mas qual a utilidade dessa comparação?
Essa função não seria somente executada quando for pressionado o Botão Novo?
Acredito que n tem o pq de comparar a caixa de texto…

A forma de eu fazer os cadastro nos meus sistemas, é assim tambem, eu utilizo o proprio programa para gerar esse codigo automatico.
Mas não entendi o pq de vc comparar a caixa de texto…

Eu comparo o texto o botão. Ou seja,
Utilizo um botão para duas funções, gravar e editar.
Então eu mudo o Texto dele conforme a operação.
Se o usuario clicou no botão novo -> entao texto = gravar
Se clicou em Editar -> entao texto = editar

Mas, era pra dar certo a maneira que voce esta fazendo tambem…
Tenta verificar se o campo esta null tabem

If (objeto.valor() == null){ }

Nelsonjahn

Entendi seu jeito, mas esse meu na verdade não pode ficar nulo ele já cria o novo código na hora em que eu for clikar em novo registro ele não pode ficar nulo ele dve ficar com o ultimo registro mais um, seria essa minha idéia. na verdade ele deveria gravar com o novo codigo gerado sem estar vazio. ok

Criado 4 de novembro de 2012
Ultima resposta 4 de nov. de 2012
Respostas 4
Participantes 2