Olá,boa tarde a todos.
Estou tentando fazer um sistema de busca porém não estou conseguindo setar o nome que vou pesquisar na query lá do meu dao.
esse formualrio passa o nome que eu quero pesquisar
[code]
procurar
[/code]Esse servlet pega esse valor que eu passei pelo formulario
package br.com.zefininfo.controle;
import java.io.IOException;
import javax.servlet.RequestDispatcher;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.zefininfo.modelo.Produto;
@WebServlet("/pesquisar-produto")
public class PesquisarProdutos extends HttpServlet {
private static final long serialVersionUID = 1L;
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
processRequest(request, response);
}
protected void processRequest(HttpServletRequest request , HttpServletResponse response) throws ServletException , IOException{
Produto produto = new Produto();
try{
String pesquisa = request.getParameter("pesquisa");
produto.setNome("%" + pesquisa + "%");
RequestDispatcher rs = request.getRequestDispatcher("lista-busca.jsp");
rs.forward(request, response);
}catch(Exception e){
e.printStackTrace();
}
}
}
e quero exibir o resultado da pesquisa nessa jsp
<%@page import="br.com.zefininfo.dao.ProdutoDAOImpl"%>
<%@page import="br.com.zefininfo.modelo.Produto"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Insert title here</title>
</head>
<body>
<jsp:useBean id="dao" class="br.com.zefininfo.dao.ProdutoDAOImpl"></jsp:useBean>
<c:forEach var="produto" items="${dao.pesquisa}" >
${produto.nome}
</c:forEach>
</body>
</html>
porém não estou conseguindo passar o valor da pesquisa(o nome) para o metodo pesquisa do produtoDao
public List<Produto> getPesquisa(Produto produto) throws SQLException{
ArrayList<Produto> produtosPesquisa = new ArrayList<Produto>();
conexao = Conexao.getConnection();
PreparedStatement pstmt = conexao.prepareStatement("SELECT * FROM TB_PRODUTOS WHERE NOME_PRODUTO_TXT LIKE ? ");
//Produto produto = new Produto();
pstmt.setString(1, produto.getNome());
System.out.println(produto);
ResultSet rs = pstmt.executeQuery();
System.out.println(pstmt);
while(rs.next()){
Produto produto2 = new Produto();
produto2.setId(rs.getInt("CODIGO_PRODUTO_ID"));
produto2.setNome(rs.getString("NOME_PRODUTO_TXT"));
produto2.setDescricao(rs.getString("DESCRICAO_PRODUTO_TXT"));
produto2.setFabricante(rs.getString("FABRICANTE_PRODUTO_TXT"));
produto2.setValor(rs.getDouble("VALOR_PRODUTO_NUM"));
produto2.setCategoria(rs.getString("CATEGORIA_PRODUTO_TXT"));
produto2.setUnidade(rs.getInt("UNIDADE_PRODUTO_NUM"));
produtosPesquisa.add(produto2);
}
rs.close();
pstmt.close();
conexao.close();
return produtosPesquisa;
}
ele está exibindo a query : com.mysql.jdbc.JDBC4PreparedStatement@50325aa1: SELECT * FROM TB_PRODUTOS WHERE NOME_PRODUTO_TXT LIKE null
ou seja,não está setando na query o valor do nome pra eu dar o like com os %% para poder pesquisar por letras,etc
eu não tenho a minima ideia de como eu posso fazer um dao de busca,então eu fiz uma mistura do dao de listar com o dao de obter,porém não está dando certo…
Alguem tem uma ideia de como eu posso fazer essa pesquisa?
desde já agradeço 
detalhe o crud inteiro da aplicação está funcionando 100%,o problema é só essa busca…
