Metodo Buscar - Crud

2 respostas
S

Estou fazendo um CRUD em java utilizando ECLIPSE e meu problema é o seguinte.
no meu banco de dados coloquei referencia como primarykey e ela é varchar, pois a empresa usa referencias com letras e numeros. EX: 2120A, 2120B, 2120C.
Meu problema é o seguinte, quando coloco a referencia completa, 2120A, ele diz que n achou o produto, mas quando coloco 2120 somente, ele acha normal.
mas no meu banco, todas as referencias contem letras e numeros.
Como resolvo esse problema? segue os codigos.
Ele so aceita os Numeros, mesmo sendo varchar no banco… e ta tudo string como podem ver.

METODO BUSCAR

public void BuscarProduto(String referencia, ProdutoBin ProBin){    
        conexao banco = new conexao();    
        try{    
            Connection ExConn = banco.abrirBDConn();    
            Statement stmt = ExConn.createStatement();    
            String sSQL = "SELECT * FROM mappingbabybd.bolsa WHERE ref = " +referencia;    
            ResultSet rs = stmt.executeQuery(sSQL);    
                
                while (rs.next()){    
                        
                    ProBin.setReferencia(rs.getString("ref"));    
                    ProBin.setNome(rs.getString("nome"));    
            }    
                stmt.close();    
                banco.fecharBDConn();    
        }catch(Exception e){    
            JOptionPane.showMessageDialog(null, "O produto não foi encontrado.");    
    
        }

BOTAO BUSCAR

JButton btnPesquisar = new JButton("Buscar");    
    btnPesquisar.addActionListener(new ActionListener() {    
        public void actionPerformed(ActionEvent arg0) {    
                
            //String referencia = ref_text.getText();    
            String referencia = JOptionPane.showInputDialog(null, "Digite a referencia do Produto: ");    
            BancoControl.BuscarProduto(referencia, ProBin);    
            ref_text.setText(ProBin.getReferencia());    
            descricao_text.setText(ProBin.getNome());    
                
                
}




2 Respostas

F

Não seria melhor você ter criado o campo id como primary key e esse campo referência, até mesmo como unique ou não coloca-lo como unique e fazer seu tratamento na hora de inserir e etc… e No caso a pesquisa eu particulamente Utilizaria LIKE na clausula WHERE:

String sSQL = "SELECT * FROM mappingbabybd.bolsa WHERE ref like '%"+referencia+"%'";

Me corrijam se estiver errado. :stuck_out_tongue:

S

Você so pode ser o deus do java. consegui.
vlw msm cara!

Criado 25 de fevereiro de 2015
Ultima resposta 26 de fev. de 2015
Respostas 2
Participantes 2