1. java
  2. android
  3. c#
  4. .net
  5. javascript
  6. php
  7. jquery
  8. html
  9. sql

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);                                     
            }
  • aonde vc está iniciando a ptmt ?

    Junior Maia   17 de jun de 2013
  • No começo da classe

    Luis Fernando Massaneiro   17 de jun de 2013
  • qual a parte que da erro esta entrando no if ou no else?

    Jefferson Gandolfi   17 de jun de 2013
  1. Você vai ver essas setas em qualquer página de pergunta. Com elas, você pode dizer se uma pergunta ou uma resposta foram relevantes ou não.
  2. Edite sua pergunta ou resposta caso queira alterar ou adicionar detalhes.
  3. Caso haja alguma dúvida sobre a pergunta, adicione um comentário. O espaço de respostas deve ser utilizado apenas para responder a pergunta.
  4. Se o autor da pergunta marcar uma resposta como solucionada, esta marca aparecerá.
  5. Clique aqui para mais detalhes sobre o funcionamento do GUJ!

2 respostas

Não é a resposta que estava procurando? Procure outras perguntas com as tags java orientação-a-objetos ou faça a sua própria pergunta.