Erro ao Inserir Dados no BD

boa tarde a todos, estou tentando inserir alguns dados no bd, e da o seguinte erro. e eu sou meio iniciante em java, ja estudei OO e outras coisas, agora to tentando aprender um pouco de bd antes de mexer com web. valew. abraço


init:
deps-jar:
Compiling 2 source files to C:\Documents and Settings\tchagas\JavaApplication1_1\build\classes
C:\Documents and Settings\tchagas\JavaApplication1_1\src\javaapplication1\ConnectionFactory.java:5: duplicate class: ConnectionFactory
 public class ConnectionFactory {  
C:\Documents and Settings\tchagas\JavaApplication1_1\src\javaapplication1\Teste.java:15: cannot access javaapplication1.ConnectionFactory
bad class file: C:\Documents and Settings\tchagas\JavaApplication1_1\src\javaapplication1\ConnectionFactory.java
file does not contain class javaapplication1.ConnectionFactory
Please remove or make sure it appears in the correct subdirectory of the classpath.
            Connection con = ConnectionFactory.getConnection();
2 errors
BUILD FAILED (total time: 0 seconds)

peguei esses exemplos na apostila da caelum.

[code]package javaapplication1;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;
public class Teste {
/** Creates a new instance of Teste */
public Teste() {
}
public static void main(String[] args) throws SQLException {
try {
// conectando
Connection con = ConnectionFactory.getConnection(); //erro nessa linha
// cria um preparedStatement
PreparedStatement stmt = con.prepareStatement(“insert into contatos(nome,email,endereco) values(?,?,?)”);
// preenche os valores
// stmt.setString(1, “Caelum”");
stmt.setString(2, “contato@caelum.com.br”);
stmt.setString(3, “R. Vergueiro 3185 cj57”);
// executa
stmt.execute();
stmt.close();
System.out.println(“Gravado!”);
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}[/code]

codigo da conexao ao banco

package javaapplication1;

import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;

public class Conexao{
  public Connection conectar(){
    // base de dados é "test"
    String url = "jdbc:mysql://localhost/teste";
    String usuario = "root";
    String senha = "1234";

    try{
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      Connection conn = DriverManager.getConnection(url, usuario,
         senha);
      return conn;
    }
    catch(SQLException ex){
      System.out.println("SQLException: " + ex.getMessage());
      System.out.println("SQLState: " + ex.getSQLState());
      System.out.println("VendorError: " + ex.getErrorCode());
      return null;
    }
    catch(Exception e){
      System.out.println("Problemas ao tentar conectar com o banco de dados: " + e);
      return null;
    }
  }
}

PreparedStatement stmt = con.prepareStatement(“insert into contatos(nome,email,endereco) values(?,?,?)”);
// preenche os valores
// stmt.setString(1, “Caelum”"); Pq esta comentado???
stmt.setString(2, "contato@caelum.com.br"); Sempre, o 1º valor deve ser 1
stmt.setString(3, “R. Vergueiro 3185 cj57”);

public class Conexao{
public Connection conectar(){

return null; Retorne o conn
}