Problema a Busca no Banco

2 respostas
maxsantos

Estou com um problema na hora de busca pelos dados no banco, está cadastrando, mas não busca.

Vê se acha aonde está o erro, e consequentemente sua solução.

no pacote model criei essa classe:

package model;


public class ControleIni {

		private String data;

		private String placaVei;

                private String horaEntrada;


   public ControleIni(){

   }

    public ControleIni(String data, String placaVei, String horaEntrada) {
        this.data = data;
        this.placaVei = placaVei;
        this.horaEntrada = horaEntrada;
    }

    public String getData() {
        return data;
    }

    public void setData(String data) {
        this.data = data;
    }

    public String getHoraEntrada() {
        return horaEntrada;
    }

    public void setHoraEntrada(String horaEntrada) {
        this.horaEntrada = horaEntrada;
    }

    public String getPlacaVei() {
        return placaVei;
    }

    public void setPlacaVei(String placaVei) {
        this.placaVei = placaVei;
    }

@Override
		public String toString() {
			final String TAB = "<br>";

			String retValue = " ";

			retValue = "Controle Inicial: " + TAB +
                        "==============================" + TAB +
			"Data: " + this.data + TAB +
			"Placa do Veiculo: " + this.placaVei + TAB +
                        "Hora de Entrada:" + this.horaEntrada;

			return retValue;
                }
}

Na pacote model.DAO:

package model.DAO;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.Statement;
import model.ControleIni;
import controller.Conexao;

public class ControleIniDAO {
	public static ControleIni inserir(String data,String placaVei,
                String horaEntrada) {

		ControleIni controle = null;

		try {
			// Criação do insert
			String sql = "INSERT INTO controle" +
					"(data,placaVei,horaEntrada) "
					+ "VALUES(?,?,?)";

			Conexao conex = new Conexao(
				"jdbc:mysql://localhost:3308/ctrl",
				"com.mysql.jdbc.Driver", "root", "alunolab");
			Connection con = conex.obterConexao();

			PreparedStatement comando =
				con.prepareStatement(sql);

			comando.setString(1,data);
                        comando.setString(2,placaVei);
                        comando.setString(3,horaEntrada);

			comando.executeUpdate();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}

		controle = new ControleIni(data,placaVei,horaEntrada);

		return controle;
	}

        public static ControleIni buscarPorPlacaVei(String placaVei) {
		ControleIni controle = null;
		try {

			String sql = "Select * from controle where " +
					"placaVei  = " + placaVei;
			Conexao conex = new Conexao(
				"jdbc:mysql://localhost:3308/ctrl",
				"com.mysql.jdbc.Driver", "root", "alunolab");
			Connection con = conex.obterConexao();

			Statement comando = con.createStatement();

                        ResultSet rs = comando.executeQuery(sql);

			if (rs.next()) {
				controle = new ControleIni(
                                                rs.getString("data"),
                                                rs.getString("placaVei"),
                                                rs.getString("horaEntrada"));
			}

			rs.close();
			comando.close();
			con.close();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}

		return controle;

        }

	}

No pacote controller:

package controller;

import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import model.ControleIni;
import model.DAO.ControleIniDAO;

/**
 *
 * @author Professor
 */
public class EstacServletConIni extends HttpServlet {
    // Constantes que representam as tarefas
    private static final String CADASTRAR = "cadastrar";
    private static final String GRAVAR = "gravar";
    private static final String BUSCAR = "buscar";

    /**
     * Processes requests for both HTTP &lt;code&gt;GET&lt;/code&gt; and &lt;code&gt;POST&lt;/code&gt; methods.
     * @param request servlet request
     * @param response servlet response
     */
    protected void processRequest(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");

        String tarefa = request.getParameter("tarefa");

        // Executa a tarefa apropriada
        if (tarefa.equals(CADASTRAR)) {
            response.sendRedirect("cadastroConIni.jsp");
        } else if (tarefa.equals(BUSCAR)) {
            response.sendRedirect("buscarConIni.jsp");
        } else if (tarefa.equals(GRAVAR)) {
            validarConIni(request, response);
        } else {
            response.sendRedirect("menuInicial.jsp");
        }
  }
    protected void validarConIni(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        // Valida os parametros da requisição
        String resultado = validarParametros(request);

        // Envia resultado
        if (resultado.equals("")) {
            // Cria um objeto do tipo cliente com os parametros de requisição
            ControleIni controle = new ControleIni();
            controle.setData(request.getParameter("data"));
            controle.setPlacaVei(request.getParameter("placaVei"));
            controle.setHoraEntrada(request.getParameter("horaEntrada"));

            String data = request.getParameter("data");
            String placaVei = request.getParameter("placaVei");
            String horaEntrada = request.getParameter("horaEntrada");

            controle = ControleIniDAO.inserir(
                    data,placaVei,horaEntrada);


            // Passa o cliente para o método que envia
            gerarVisaoCadastroOk(controle, response);
        } else {
            gerarVisaoDadosErrados(resultado, response);
        }


    }

    protected void gerarVisaoDadosErrados(String resultado,
            HttpServletResponse response) throws IOException {
        // Pega da resposta um objeto para envio dos dados ao cliente
        PrintWriter out = response.getWriter();

        // Resposta
        out.println("&lt;h2&gt;Erro no cadastramento:&lt;/h2&gt;<br>");
        out.println(resultado);

        // Link para o html de cadastro
        out.println("<br><a >Tela de Cadastro</a><br>");
    }

    /**
     * Envia o HTML de sucesso no cadastro
     *
     * @param cliente - objeto cliente
     * @param response - Objeto de resposta
     *
     */
    protected void gerarVisaoCadastroOk(ControleIni controle,
            HttpServletResponse response) throws IOException {
        // Pega da resposta um objeto para envio dos dados ao cliente
        PrintWriter out = response.getWriter();

        // Resposta
        out.println("&lt;h1&gt;Cadastro OK!&lt;/h1&gt;");
        out.println("&lt;h2&gt;Dados:&lt;/h2&gt;");
        out.println(controle);

    }

    /**
     * Envia o HTML de sucesso no cadastro
     *
     * @param cliente - objeto cliente
     * @param response - Objeto de resposta
     *
     */
    protected void gerarVisaoTodos(
            HttpServletResponse response) throws IOException {
        // Pega da resposta um objeto para envio dos dados ao cliente
        PrintWriter out = response.getWriter();

        // Resposta
        out.println("&lt;h1&gt;Cadastro OK!&lt;/h1&gt;");
        out.println("&lt;h2&gt;Seus Dados:&lt;/h2&gt;&quot;);
    //cliente = ClienteDAO.buscarTodos();

    /* Cliente[] clientes = ClienteDAO.buscarTodos();
    for (int i = 0; i &lt; clientes.length; i++) {
    if (clientes[i] != null) {
    out.println(cliente);
    }
    }*/
    }

    /**
     * Faz a validação dos parâmetros de requisicao
     *
     * @param request
     *
     * @return String contendo a mensagem com o erro ou &quot;&quot; caso contr&#65533;rio
     */
    protected String validarParametros(HttpServletRequest request) {
        // Auxiliar para a montagem da mensagem de erro
        String mensagem = &quot;&quot;;
        // Campos obrigatórios
        mensagem += validarCampoObrigatorio(&quot;placaVei&quot;,
                request.getParameter(&quot;placaVei&quot;));

        // Validação da placa
        mensagem += validarPlacaVei(request.getParameter(&quot;placaVei&quot;));

        return mensagem;
    }

    /**
     * Valida a existência da string
     *
     * @param nomeCampo nome do campo para validação
     * @param campo string para validação
     *
     * @return String contendo a mensagem com o erro ou &quot;&quot; caso contrário
     */
    protected String validarCampoObrigatorio(String nomeCampo, String campo) {
        // Verifica se o parametro existe e se ele não é vazio
        if (campo == null || campo.equals(&quot;&quot;)) {
            return &quot;Campo obrigatorio: &quot; + nomeCampo + &quot;<br>&quot;;
        } else {
            return &quot;&quot;;
        }
    }

    /**
     * Valida o tamanho do login
     *
     * @param campo string para validação
     *
     * @return String contendo a mensagem com o erro ou &quot;&quot; caso contrário
     */
    protected String validarPlacaVei(String campo) {
        String mensagem = &quot;&quot;;

        // Verifica o tamanho
        if (campo != null && campo.length() &lt; 7) {
            mensagem += &quot;O campo Placa deve ter no mínimo 7 caracteres.<br>";
        }
        return mensagem;
    }


    // &lt;editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código."&gt;
    /**
     * Handles the HTTP &lt;code&gt;GET&lt;/code&gt; method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Handles the HTTP &lt;code&gt;POST&lt;/code&gt; method.
     * @param request servlet request
     * @param response servlet response
     */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
     * Returns a short description of the servlet.
     */
    public String getServletInfo() {
        return "Short description";
    }
    // &lt;/editor-fold&gt;
}
/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package controller;
import java.io.*;
import java.net.*;
import javax.servlet.*;
import javax.servlet.http.*;
import model.ControleIni;
import model.DAO.ControleIniDAO;

/**
 *
 * @author Aluno
 */
public class BuscarConIniServlet extends HttpServlet {

    /**
    * Processes requests for both HTTP &lt;code&gt;GET&lt;/code&gt; and &lt;code&gt;POST&lt;/code&gt; methods.
    * @param request servlet request
    * @param response servlet response
    */
    protected void processRequest(HttpServletRequest request,
            HttpServletResponse response)
    throws ServletException, IOException {
        response.setContentType("text/html;charset=UTF-8");
        PrintWriter out = response.getWriter();

        ControleIni controle = new ControleIni();

        String placaVei = request.getParameter("placaVei");

        controle = ControleIniDAO.buscarPorPlacaVei(placaVei);

        gerarVisaoVeiOk(controle, response);
    }

    protected void gerarVisaoVeiOk(ControleIni controle,
            HttpServletResponse response) throws IOException {

        //Pega da resposta um objeto para envio dos dados ao cliente

        PrintWriter out = response.getWriter();

        // Resposta
        //if (controle == null){
           // out.println("&lt;h1&gt;Placa não Encontrada&lt;/h1&gt;");
            
            //out.println(cliente);
       // }else{
            out.println(controle);
            
        }
    

    // &lt;editor-fold defaultstate="collapsed" desc="Métodos HttpServlet. Clique no sinal de + à esquerda para editar o código."&gt;
    /**
    * Handles the HTTP &lt;code&gt;GET&lt;/code&gt; method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doGet(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
    * Handles the HTTP &lt;code&gt;POST&lt;/code&gt; method.
    * @param request servlet request
    * @param response servlet response
    */
    protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
        processRequest(request, response);
    }

    /**
    * Returns a short description of the servlet.
    */
    public String getServletInfo() {
        return "Short description";
    }
    // &lt;/editor-fold&gt;
}

E também a classe conexão e os jsp fazendo referencia a cada classe

2 Respostas

thiago.correa

Depure o seu código para descobrir o que está acontecendo!

caputojf1

Tente alterar seu método para isso:

public static ControleIni buscarPorPlacaVei(String placaVei) {
		ControleIni controle = new ControleIni();
		try {

			String sql = "Select data,placaVei,horaEntrada from controle where " + "placaVei  = "
					+ placaVei;
			Conexao conex = new Conexao("jdbc:mysql://localhost:3308/ctrl",
					"com.mysql.jdbc.Driver", "root", "alunolab");
			Connection con = conex.obterConexao();

			Statement comando = con.createStatement();

			ResultSet rs = comando.executeQuery(sql);

			if (rs.next()) {
				controle.setData(rs.getString("data"));
				controle.setPlacaVei(rs.getString("placaVei"));
				controle.setHoraEntrada(rs.getString("horaEntrada"));
			}

			rs.close();
			comando.close();
			con.close();
		} catch (Exception e) {
			System.out.println(e.getMessage());
		}

		return controle;

	}

Alterei a consulta e a criação do Objeto ControleIni.
Creio que vai funcionar…

Criado 17 de setembro de 2010
Ultima resposta 23 de set. de 2010
Respostas 2
Participantes 3