[RESOLVIDO]Ajuda com servlet e conexão ao banco de dados!

Tenho uma classe para cadastro de contato e um DAO para o mesmo. Algo bem simples, apenas para efeito de estudo. Ambas estão funcionando perfeitamente num projeto via console que fiz há alguns dias.

Resolvi fazer uma versão Web desse cadastrinho. Já está praticamente tudo pronto, tenho a classe que recebe os parâmetros da requisição, o Driver do banco, o objeto cadastro e seu DAO, entre outros. O problema que estou tendo é que não estou conseguindo jogar os dados da requisição no banco. A aplicação gera um erro que eu não consigo imaginar o que esteja me dizendo (Abaixo está o print com mensagem de erro gerada).

http://img838.imageshack.us/img838/4324/problemservlets.png

Deixo aqui trechos de código de meu projeto para que vocês possam me ajudar a descobrir o que é esse, e se possível, a corrigi-lo também.


//Classe responsável por realizar a conexão com o banco
package br.julioc.acessabanco;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

import javax.servlet.http.HttpServlet;

public class ConnectionFactory{

    public Connection getConnection(){
        try{
            return DriverManager.getConnection("jdbc:mysql://localhost/testejava","root","tezcatlipoca");
        }catch(SQLException e){
            throw new RuntimeException(e);
        }
    }
}

//Classe que representa o objeto cadastro
package br.julioc.contato;
import java.util.Calendar;


public class Contato {
    private long id;
    private String nome;
    private String email;
    private String endereco;
    private Calendar dataNascimento;

    public long getId() {
        return id;
    }
    public void setId(long id) {
        this.id = id;
    }
    public String getNome() {
        return nome;
    }
    public void setNome(String nome) {
        this.nome = nome;
    }
    public String getEmail() {
        return email;
    }
    public void setEmail(String email) {
        this.email = email;
    }
    public String getEndereco() {
        return endereco;
    }
    public void setEndereco(String endereco) {
        this.endereco = endereco;
    }
    public Calendar getDataNascimento() {
        return dataNascimento;
    }
    public void setDataNascimento(Calendar dataNascimento) {
        this.dataNascimento = dataNascimento;
    }
}


/*DAO da classe cadastro. Apenas a funcionalidade de inserção foi informada para este Post*/

package br.julioc.contato;

import java.sql.Connection;
import java.sql.Date;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Calendar;
import java.util.List;
import br.julioc.acessabanco.ConnectionFactory;

public class ContatoDAO {
    private Connection conexao;

    public ContatoDAO(){
        this.conexao = new ConnectionFactory().getConnection();
    }

    public void adicionar(Contato contato){
        String sql = "insert into contatos(nome, email, endereco, dataNascimento)values(?,?,?,?)";

        try{

            PreparedStatement stmt = this.conexao.prepareStatement(sql);

            stmt.setString(1, contato.getNome());
            stmt.setString(2, contato.getEmail());
            stmt.setString(3, contato.getEndereco());
            stmt.setDate(4, new Date(contato.getDataNascimento().getTimeInMillis()));

            stmt.execute();
            stmt.close();

        }catch(SQLException e){
            throw new RuntimeException(e);
        }
    }
}

//Classe que recebe os dados da requisição
package br.julioc.contatoweb;

import java.io.IOException;
import java.io.PrintWriter;
import java.text.SimpleDateFormat;
import java.util.Calendar;

import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;

import br.julioc.contato.*;

public class AdicionaContatoServlets extends HttpServlet {

    @Override
    protected void service(HttpServletRequest request, HttpServletResponse response)
            throws ServletException, IOException {

        PrintWriter saida = response.getWriter();
        Contato umContato = new Contato();
        String endereco = "";
        boolean podePassar = false;


        if(ValidaCamposFormulario.validarCampoNome(request.getParameter("nome"))){
            umContato.setNome(request.getParameter("nome"));
            podePassar = true;
        }

        if(ValidaCamposFormulario.validarCampoEmail(request.getParameter("email"))){
            umContato.setEmail(request.getParameter("email"));
        }else{
            podePassar = false;
        }

        if(ValidaCamposFormulario.validarCampoNascimento(request.getParameter("nascimento"))){

            try{
                SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy");
                Calendar data = Calendar.getInstance(); 
                data.setTime(dateFormat.parse(request.getParameter("nascimento")));
                umContato.setDataNascimento(data);
            }catch(Exception e){}
        }else{
            podePassar = false;
        }

        if(ValidaCamposFormulario.validarCampoEndereco(request.getParameter("endereco"))){
            endereco += request.getParameter("endereco");
        }else{
            podePassar = false;
        }

        if(ValidaCamposFormulario.validarCampoBairro(request.getParameter("bairro"))){
            endereco += request.getParameter(request.getParameter("bairro"));
        }else{
            podePassar = false;
        }

        if(ValidaCamposFormulario.validarCampoNumero(request.getParameter("numero"))){
            endereco += request.getParameter("numero");
        }else{
            podePassar = false;
        }

        umContato.setEndereco(endereco);

        if(podePassar){
            ContatoDAO umContatoDao = new ContatoDAO();
            umContatoDao.adicionar(umContato);
            saida.println("Cadastrado!!!");
        }else{
            saida.println("Cadastro falhou.");
        }
    }
}

Nao precisava postar aqui se ja postou aqui http://www.guj.com.br/315-ajuda-com-servlet-e-conexao-ao-banco-de-dados

Acreditei que desta maneira eu teria mais chances de ser respondido. Mas tudo bem, se achar necessário, pode fechar o tópico.

Acreditei que desta maneira eu teria mais chances de ser respondido. Mas tudo bem, se achar necessário, pode fechar o tópico.[/quote]
Em sites diferentes voce pode fazer isso sim. Mas os dois que postou é do mesmo site sendo que aqui é mais para forum de discussao do que dúvida direta. Valeu por compartilhar.

Galera, vi algumas pessoas com o mesmo problema que eu na internet. Encontrei uma solução e a divulguei no seguinte link: http://www.guj.com.br/315-ajuda-com-servlet-e-conexao-ao-banco-de-dados. A solução está no meu último comentário. Bons estudos! :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: :smiley: