Versão atual:

NullPointer com PrepareStatement

Boa tarde pessoal,

Estou fazendo um trabalho no curso com swings e tenho uma tela de pesquisa de produto que pode se fazer a pesquisa por filtros.

Meu filtro pelo código funciona perfeitamente, mas quando fui pegar pela descrição deu pau.

código fonte:

 public Vector<Vector> listarPesquisa(String id, String nomeProduto) {
        Vector<Vector> dados = new Vector<Vector>();
        try {
            Connection connection = ConnectionFactory.getConnection();
            String query;
            if (!id.equals("")) {
                query = "SELECT * FROM PRODUTO WHERE ID=?";
                ptmt = connection.prepareStatement(query);
                ptmt.setInt(1, Integer.parseInt(id));
                rs = ptmt.executeQuery();
            } else {
                query = "SELECT * FROM PRODUTO WHERE DESCRICAO LIKE '%?%' ";
                ptmt = connection.prepareStatement(query);
                ptmt.setString(1, nomeProduto); //Aqui ele não seta a descrição, está pegando nulo
                rs = ptmt.executeQuery();

            }

Ao invés de por exemplo ele pegar o valor "comp" e listar os produtos com descrições que contém "comp" ele gera NullPointer onde expliquei.

--------------------------RESOLVIDO-------------------

Eu apenas troquei pelo Statement e funcional. Método final ficou assim:

    public Vector<Vector> listarPesquisa(String id, String nomeProduto) {
        Vector<Vector> dados = new Vector<Vector>();
        try {
            Connection connection = ConnectionFactory.getConnection();
            String query;
            if (!id.equals("")) {
                query = "SELECT * FROM PRODUTO WHERE ID=?";
                ptmt = connection.prepareStatement(query);
                int codigo;
                codigo = Integer.parseInt(id);
                ptmt.setInt(1, codigo);
                rs = ptmt.executeQuery();

            } else {
                query = "SELECT * FROM PRODUTO WHERE DESCRICAO LIKE '%"+nomeProduto+"%'";
                stmt = connection.createStatement();
                rs =  stmt.executeQuery(query);                                     
            }

Versões(2):

Ver a versão formatada

NullPointer com PrepareStatement

Comentário

new question