olha eu de novo,
pessoal tenho uma pagina basica para inserir dados no mysql, quando clico em gravar ocorre um erro com o driver se é que entendi o erro. meu projeto fucniona normal com com uma classe de teste para inserir no banco, mas quando uso html+servlet da erro. Ja adicionei o driver com biul path, a variavel de ambiente ta ok tb, ja mapiei os objetos… Olha o codigo …
ERRO
Connect to database...
29/12/2010 16:23:46 org.apache.catalina.core.StandardWrapperValve invoke
GRAVE: Servlet.service() for servlet AdicionaContatoServlet threw exception
java.lang.RuntimeException: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:11)
at br.com.caelum.jdbc.dao.ContatoDAO.<init>(ContatoDAO.java:14)
at br.com.caelum.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:49)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:127)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:298)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:857)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:588)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:489)
at java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: No suitable driver found for jdbc:mysql://localhost/fj21
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at br.com.caelum.jdbc.ConnectionFactory.getConnection(ConnectionFactory.java:9)
... 15 more
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>Insert title here</title>
</head>
<html>
<body>
<form action="adicionaContato">
Nome: <input type="text" name="nome" /><br />
E-mail: <input type="text" name="email" /><br />
Endereço: <input type="text" name="endereco" /><br />
Data Nascimento: <input type="text" name="dataNascimento" /><br />
<input type="submit" value="Gravar" />
</form>
</body>
</html>
package br.com.caelum.servlet;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Date;
import java.text.ParseException;
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.com.caelum.jdbc.dao.ContatoDAO;
import br.com.caelum.jdbc.modelo.Contato;
public class AdicionaContatoServlet extends HttpServlet {
protected void service(HttpServletRequest request, HttpServletResponse response)
throws IOException, ServletException {
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 a conversão da data
try {
Date date = new SimpleDateFormat("dd/MM/yyy").parse(dataEmTexto);
dataNascimento = Calendar.getInstance();
dataNascimento.setTime(date);
} catch(ParseException e) {
out.println("Erro de conversão da data");
return; //Para a execução do método
}
//Mostra um 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>");
}
}
Fabrica de conexão
[code]package br.com.caelum.jdbc;
import java.sql.*;
public class ConnectionFactory {
public Connection getConnection() {
try {
System.out.println("Connect to database...");
return DriverManager.getConnection("jdbc:mysql://localhost/fj21", "root", "");
} catch(SQLException sqlException) {
throw new RuntimeException(sqlException);
}
}
}[/code]
objeto DAO
[code]package br.com.caelum.jdbc.dao;
import java.sql.;
import java.sql.Date;
import java.util.;
import br.com.caelum.jdbc.ConnectionFactory;
import br.com.caelum.jdbc.modelo.Contato;
public class ContatoDAO {
//Coneção com o banco de dados
private Connection connection;
//Fabrica a conexão com o banco mysql
public ContatoDAO() {
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Contato contato) {
String sql = "INSERT INTO contatos(nome, email, endereco, dataNascimento) VALUES(?,?,?,?)";
try {
//Objeto para Inserção no banco PreparedStatement passando a string sql
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();
System.out.println("Contato adicionado.");
} catch(SQLException sqlException) {
throw new RuntimeException(sqlException);
}
}
}[/code]
MEU WEB.XML
[code]<?xml version="1.0" encoding="UTF-8"?>
fj21-agenda1
index.html
index.htm
index.jsp
default.html
default.htm
default.jsp