Boa noite, estou resolvendo os exercicios do Caelum fj21 da página 78.
Estava tudo funcionando certinho, e de uma hora pra outra começou a não encontrar mais o driver do mysql, não sei o porque mesmo.
Estou apenas começando a aprender essas coisas, então ainda ta um pouco complicado encontrar os erros que aparecem.
O programa compila tudo certinho, abro a pagina no navegador com os formularios pra preenher, o erro acontece na hora de dar o submit nos dados preenchidos.
Eu adicionei já no classpath o driver do mysql. Acho que com os print e codigos abaixo alguem talvez vai saber o que está acontecendo.
Agradeço já, Obrigado.
Aqui está o erro que acontece logo após clicar no botão de submit da pagina com os dados nome, email e endereço.
Botei essa figura pra verem onde estão meus drivers do mysql e servlet:
[size=18]Aqui estão as classes que o programa possui:[/size]
Classe ConnectionFactory
package br.com.web.jdbc.dao;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class ConnectionFactory {
//Método que retorna uma nova conexão.
public Connection getConnection() throws ClassNotFoundException, InstantiationException, IllegalAccessException{
try {
return DriverManager.getConnection("jdbc:mysql://localhost:3306/WebExercicio-Pag_78", "root", "root");
} catch (SQLException e) {
throw new RuntimeException(e);
}
}
}
classe ContatoDAO
package br.com.web.jdbc.dao;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import br.com.web.modelo.Contato;
public class contatoDAO {
private Connection connection;
public contatoDAO() throws ClassNotFoundException, InstantiationException, IllegalAccessException {
this.connection = new ConnectionFactory().getConnection();
}
//Recebe um contato e adiciona no BD
public void adiciona(Contato contato){
String sql = "insert into contato" +
"(nome, email, endereco)" +
"values (?,?,?)";
try{
// prepared statement para inserção
PreparedStatement stmt = connection.prepareStatement(sql);
// seta os valores
stmt.setString(1, contato.getNome());
stmt.setString(2, contato.getEmail());
stmt.setString(3, contato.getEndereco());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
public void remove(Contato contato) throws SQLException{
try{
PreparedStatement stmt = connection.prepareStatement("delete from contato where nome=?");
stmt.setString(1, contato.getNome());
stmt.execute();
stmt.close();
}catch(SQLException e){
throw new RuntimeException(e);
}
}
}
Classe Contato
package br.com.web.modelo;
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;
}
}
Classe(Servlet) AdicionaContatoServlet
package br.com.web.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import br.com.web.jdbc.dao.contatoDAO;
import br.com.web.modelo.Contato;
public class AdicionaContatoServlet extends HttpServlet{
@Override
protected void service(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
//busca o Writer
PrintWriter out = response.getWriter();
//buscando os parâmetros no request
String nome = request.getParameter("nome");
String endereco = request.getParameter("endereco");
String email = request.getParameter("email");
//monta um objeto
Contato contato = new Contato();
contato.setNome(nome);
contato.setEndereco(endereco);
contato.setEmail(email);
//Salva o contato
contatoDAO dao = null;
try {
dao = new contatoDAO();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
dao.adiciona(contato);
out.println("<html>");
out.println("<body>");
out.println("Contato "+contato.getNome()+" adicionado com sucesso!");
out.println("</body>");
out.println("</html>");
}
}



