Java - Dúvida sobre conversão

5 respostas
L

Olá pessoal. Gente eu criei um campo de pesquisa. No meu banco de dados o tipo da pesquisa a ser retornada no java é do tipo inteiro. Então para o código da pesquisa tentei botar isso:

public void pesquisarResultado() {

String sql = "select atendente,requerente,cpf,requerimento,destino,data_emissao from resultado where protocolo like ? ";

try {

pst = conecta.prepareStatement (sql);
pst.setString(1,txtPesquisar.getText().+"%"); 
        rs = pst.executeQuery();
        tblResultado.setModel(DbUtils.resultSetToTableModel(rs));
    }
    catch (SQLException error){
        
        JOptionPane.showMessageDialog(null, error);
    }
    
}

So que quando clico no botão para fazer a busca da essa mensagem:
Operador não existe: integer ~~ character varying.

Tentei trocar então uma linha do código por essa: pst.setInt(1,Integer.parseInt(txtPesquisar.getText()+"%"));

Também não funcionou. Alguma dica para esse problema ? Agradeço a ajuda de vocês

5 Respostas

L

O campo protocolo é de qual tipo?

L

o protocolo é do tipo inteiro no banco.

L

Você não pode usar o operador like em um campo Integer. Antes disso, você deve converter o campo para String (aliás, talvez fosse melhor que esse campo fosse string ao invés de inteiro) com um cast ou um convert dependendo do bd que você usa. Por exemplo:

"select atendente,requerente,cpf,requerimento,destino,data_emissao from resultado where cast(protocolo as varchar(200)) like ? "

L

OBRIGADA !!! eu testei remover like e converter mas não gostei. A sua maneira ficou 1000% excelente. MUITO OBRIGADA !!!

L

:+1::+1::+1::+1::+1:

Criado 31 de maio de 2016
Ultima resposta 1 de jun. de 2016
Respostas 5
Participantes 2