Erro ao conectar no banco MySQL [RESOLVIDO]

Olá galera

Estou aprendendo a trabalhar com JavaEE

Baixei uma apostila da Caelum e estou seguindo

Só que em um exercicio esta dando erro ao conectar com o banco

segue o codigo abaixo


public class ContatoDAO {

	public void adiciona(Contato contato){
		
		String sql = "insert into contatos (nome,email,endereco,dataNascimento) values (?,?,?,?)";
		
		try{
			Connection conn = ConnectionFactory.getConnection();
			PreparedStatement stmt = conn.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() ));
			
			 // executa
			stmt.execute();
			stmt.close();
		} catch (SQLException e) {
			 throw new RuntimeException(e);
		}
			
	}
	
}
public class AdicionaContatoServlet extends HttpServlet {
	
	@Override
	protected void service(HttpServletRequest request, HttpServletResponse response)
			throws ServletException, IOException {
		
		//Busca o Writer
		PrintWriter out = response.getWriter();
		
		//Busca os parâmetros no request
		
		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 de data
		
		try{
			Date date = new SimpleDateFormat("dd/MM/yyyy").parse(dataEmTexto);
			dataNascimento = Calendar.getInstance();
			dataNascimento.setTime(date);
			
		}catch(ParseException e){
			
			out.println("Erro de conversão de data");
			return;
		}
		
		//Monta um objeto contato
		
		Contato contato = new Contato();
		contato.setNome(nome);
		contato.setEndereco(endereco);
		contato.setEmail(email);
		contato.setDataNascimento(dataNascimento);
		
		//Salva o contato
		
		new ContatoDAO().adiciona(contato);
		
		JOptionPane.showMessageDialog(null, nome);
		JOptionPane.showMessageDialog(null, endereco);
		JOptionPane.showMessageDialog(null, email);
		
		//Imprimi o nome do contato que foi adicionado
		
		out.println("<html>");
		out.println("<body>");
		out.println("O contato "+ contato.getNome() +" foi adicionado com sucesso");
		out.println("</body>");
		out.println("</html>");
	}
package br.com.caelum.jdbc;

import java.sql.Connection;
import java.sql.DriverManager;

import javax.swing.JOptionPane;


public class ConnectionFactory {
	
		private static Connection conn = null;
		
		public final static String DRIVER = "com.mysql.jdbc.Driver";
		public final static String URL = "jdbc:mysql://localhost:3306/fj21";
		public static String USER = "root";
		public static String PASSWD = "root";
		
		public ConnectionFactory(){ 
			if (conn == null){
				
				loadDriver();
			}
				
		}
		
		private static void loadDriver() {
			try {
				Class.forName(DRIVER);
				conn = DriverManager.getConnection(URL, USER, PASSWD);
			} catch (Exception e) {
				JOptionPane.showMessageDialog(null, "Falha na conex&#65533;o com o banco");
				e.printStackTrace();
			}
		}
		
		public static Connection getConnection() {
			if (conn == null){
				
				loadDriver();
			}	
			return conn;
		}
		
		public static void erroDB () {
			conn = null;
		}
}

tem um html que tem 4 campos text pra qunado eu clico no botao gravar ele chama o servlet

e da o seguinte erro na pagina

[code]
type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.NullPointerException
br.com.caelum.dao.ContatoDAO.adiciona(ContatoDAO.java:23)
br.com.caelum.servlet.AdicionaContatoServlet.service(AdicionaContatoServlet.java:59)
javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.26 logs.[/code]

e aparece um JDialog que eu fiz pra quando der problema na conexao com o banco

O que está acontecendo

Tem que conigurar o mysql junto com o apache no linux pra faze algo?

Atenciosamente

dar uma olhada nos posts abaixo:
http://camilolopes.wordpress.com/2009/04/14/criando-conexao-java-mysql-com-eclipse/
http://imasters.uol.com.br/artigo/13937/java/aplicacoes_jee_com_jsp__jstl__mysql/

se estiver usando dynamic web project tem que ler o post abaixo:
http://camilolopes.wordpress.com/2009/10/10/dica-dynamic-web-project-eclipse-conexao-bd/

flw!

Opa LP

Muito obrigado =D

Agora deu certo

Achei engraçado o início do tutorial do cara

“O stress maior será quando tentar inserir algo no BD e simplesmente não vai acontecer. Alguns gastarão horas e horas tentando rever code, conection etc. Quando o problema é do Eclipse. O motivo vem logo a seguir?”

Rachei o bico pq foi exatamente oq eu fiz auihuahuiahiuahiua

Muito obrigado novamente LPJava

huauha, pois eh. aquilo eh um stress e vai piorando pq sabemos que está certo de nossa parte com code, connection etc. Mas, quando vamos felizes da vida testar… o eclipse quer sacanear todo o trabalho.

flw abracos,