Pessoal estou com uma dúvida, já fiz dezenas de pesquisas e não encontrei o que realmente quero… Preciso fazer um método de pesquisa no banco onde vou pesquisar em uma tabela especialidade, porém o usuário que vai escolher a especialidade que ele deseja por meio de um input e quando ele clicar em buscar, tem que trazer do banco de dados todas as especialidades com o nome da especialidade encontrada, porém só tem que aparecer na tela quando ele clicar em buscar. PROBLEMA: já fiz um ArrayList que só busca a especialidade quando coloco no comando SQL a especialidade que desejo, quando coloco a tag ? ele simplesmente não traz nada, já fiz um método de pesquisa e usei uma servlet, porém não entendo como posso pegar o resultado do input para poder fazer a pesquisa.
SEGUE O MÉTODO DE PESQUISA QUE FIZ.
Método na DAO:
public Cad_Agenda_Bean Pesquisar_Especialidade (String especialidade)throws Exception {
try{
Cad_Agenda_Bean ms = new Cad_Agenda_Bean();
AbrirConexao();
String query = "SELECT * FROM tbl_agenda WHERE especialidade = ?";
pst = (PreparedStatement) con.prepareStatement(query);
pst.setString(1, ms.getEspecialidade());
ResultSet rs = pst.executeQuery();
if(rs.next()){
ms.setId_agenda(rs.getInt("id_agenda"));
ms.setEspecialidade(rs.getString("especialidade"));
ms.setData(rs.getString("data"));
ms.setHora(rs.getString("hora"));
ms.setNome_dentista(rs.getString("nome_dentista"));
return ms;
}
FecharConexao();
}catch(Exception e){
System.out.println("erro..."+e.getMessage());
}
return null;
}
SERVLET:
public class Serv_Pesquisar_Especialidade extends HttpServlet {
protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
try (PrintWriter out = response.getWriter()) {
Cad_Agenda_Bean agenda_bean = new Cad_Agenda_Bean();
Cad_Agenda_DAO agenda_dao = new Cad_Agenda_DAO();
String especialidade = request.getParameter("consulta_por_especialidade");
try{
agenda_bean = agenda_dao.Pesquisar_Especialidade(especialidade);
}catch(Exception e){
e.getStackTrace();
}
String msg ="";
if(agenda_bean == null){
msg = "Registro de especialidade não encontrada!";
request.setAttribute("resp_msg", msg);
RequestDispatcher rd = request.getRequestDispatcher("Resposta.jsp");
rd.forward(request, response);
}else {
request.setAttribute("resp_id_agenda", agenda_bean.getId_agenda());
request.setAttribute("resp_especialidade", agenda_bean.getEspecialidade());
request.setAttribute("resp_data", agenda_bean.getData());
request.setAttribute("resp_horario", agenda_bean.getHora());
request.setAttribute("resp_nome_dentista", agenda_bean.getNome_dentista());
RequestDispatcher rd = request.getRequestDispatcher ("index.jsp");
rd.forward(request, response);
}
}
}