Boa tarde pessoas, estou com um problema mas acredito que não seja tão difícil de se resolver mas ainda não consegui encontrar qual é o problema, estou tentando inserir os dados de uma formulario em uma Tabela apartir de uma servlet usando jdbc, o mesmo exemplo da apostila da caelum, porém quando realizo o exercicio utilizando a servlet não conecta no banco da erro no método DriverManager.getConnection(…), eu já verifiquei a string de conexão e está correta, também verifiquei se o jar estava na pasta lib do projeto e se também estava adicionado no class path do projeto, e também está, pois caso não estivesse quando eu executasse o metodo main normal apenas para tetar a conexao tambem ocorreria um erro mas erro está ocorrendo apenas quando pego os dados do formulario atraves da minha servlet, segue o meu codigo logo abaixo junto com a descrição do erro:
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
[code]package br.com.caelum.jdbc;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
public Connection getConnection() {
System.out.println(“Conectando ao banco de dados”);
try {
return DriverManager.getConnection(“jdbc:mysql://localhost/fj21”,“root”,“root”);
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
[/code]
[code]package br.com.caelum.agenda.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import java.util.Date;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.caelum.jdbc.dao.ContatoDAO;
import br.com.caelum.jdbc.modelo.Contato;
public class AdicionaContatoServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
PrintWriter out = response.getWriter();
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
String dataEmTexto = request.getParameter("dataNascimento");
Calendar dataNascimento = null;
// Fazendo conversao da data
try {
Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(date);
}catch(ParseException e){
out.println("Erro na conversao da data");
return; // para a execucao do metodo
}
// Monta o objeto contato
Contato contato = new Contato();
contato.setNome(nome);
contato.setEndereco(endereco);
contato.setEmail(email);
contato.setDataNascimento(dataNascimento);
//Salva o contato
ContatoDAO dao = new ContatoDAO();
dao.adiciona(contato);
//imprime o nome do contato que foi adicionado
out.println("<html>");
out.println("<body>");
out.println("Contato " + contato.getNome() + " adicionado com sucesso");
out.println("</body>");
out.println("</html>");
}
}
[/code]
package br.com.caelum.jdbc.dao;
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.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;
public class ContatoDAO {
private Connection connection;
public ContatoDAO() {
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Contato contato){
String sql = "insert into contatos (nome, email, endereco, dataNascimento) values (?,?,?,?)";
try {
PreparedStatement stmt = connection.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);
}
}
public List<Contato> getLista() {
List<Contato> contatos = new ArrayList<Contato>();
try {
PreparedStatement stmt = connection.prepareStatement("select * from contatos");
ResultSet rs = stmt.executeQuery();
while(rs.next()){
// Criando Contato
Contato contato = new Contato();
contato.setNome(rs.getString("nome"));
contato.setEmail(rs.getString("email"));
contato.setEndereco(rs.getString("endereco"));
//montando a data atraves do Calendar
Calendar data = Calendar.getInstance();
data.setTime(rs.getDate("dataNascimento"));
contato.setDataNascimento(data);
//adicionando o objeto a lista
contatos.add(contato);
}
rs.close();
stmt.close();
return contatos;
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public void altera(Contato contato){
String sql = "update contatos set nome=?, email=?, endereco=?, dataNascimento=? where id=?";
try {
PreparedStatement stmt = connection.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.setLong(5, contato.getId());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public void remove(Contato contato){
try {
PreparedStatement stmt = connection.prepareStatement("delete from contatos where id = ?");
stmt.setLong(1, contato.getId());
stmt.execute();
stmt.close();
System.out.println("Contato removido com sucesso");
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}