Problema Conexão BD

Olá,

Meu código não aponta nenhum erro, contudo quando tento inserir
o código no banco, ele aponta as seguintes exceções:

SQLException: No suitable driver found for jdbc:mysql://localhost:aplicacao_comercial
SQLState: 08001
VendorError: 0
08/09/2007 13:29:54 aplicacaocomercial.FormFornecedor jButton1ActionPerformed
SEVERE: null
java.lang.NullPointerException
        at aplicacaocomercial.FornecedorBD.gravar(FornecedorBD.java:19)
        at aplicacaocomercial.FormFornecedor.jButton1ActionPerformed(FormFornecedor.java:282)
        at aplicacaocomercial.FormFornecedor.access$100(FormFornecedor.java:10)
        at aplicacaocomercial.FormFornecedor$2.actionPerformed(FormFornecedor.java:70)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
        at java.awt.Component.processMouseEvent(Component.java:6038)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
        at java.awt.Component.processEvent(Component.java:5803)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2429)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)
BUILD SUCCESSFUL (total time: 2 minutes 21 seconds)

Meu código da classe Conexão

public class Conexao
{
    public Statement Conectar() throws InstantiationException, IllegalAccessException,
             ClassNotFoundException, SQLException,IOException{
        try{
	Class.forName("com.mysql.jdbc.Driver").newInstance();
	Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost:aplicacao_comercial","user=root","password=");
	Statement st = conexao.createStatement(); 
        return st;
        }
        catch(SQLException ex){
           System.err.println("SQLException: " + ex.getMessage());
           System.err.println("SQLState: " + ex.getSQLState());
           System.err.println("VendorError: " + ex.getErrorCode());
           return null;
        }
        catch(Exception e){
           JOptionPane.showMessageDialog(null,"Erro ao conectar com o banco de dados","Erro de " +
                   "Conexão",JOptionPane.ERROR_MESSAGE);
           return null; 
        }
    }   
}//Fim da Classe

Uso em ClienteBD

public class ClienteBD extends Conexao {
    Conexao con = new Conexao();
    
    public ClienteBD() {
    }
    
    public void gravar( String nome,String cpf,String rg,String endereco,String bairro,
            String municipio,String uf,String cep,String telefone,String fax,
            String celular,String email) throws Exception{
        PreparedStatement st;
        st = (PreparedStatement) con.Conectar();
        st.execute("INSERT INTO Cliente(nome,cpf,rg,endereco,bairro,municipio,uf,cep" +
                "telefone,fax,celular,email) VALUES (?,?,?,?,?,?,?,?,?,?,?,?)");
        st.setString(1, nome);
        st.setString(2, cpf);
        st.setString(3, rg);
        st.setString(4, endereco);
        st.setString(5, bairro);
        st.setString(6, municipio);
        st.setString(7, uf);
        st.setString(8, cep);
        st.setString(9, telefone);
        st.setString(10, fax);
        st.setString(11, celular);
        st.setString(12, email);
        
        st.executeUpdate();
        st.close();
    }

Por favor Ajudem pessoal, obrigado.

Você não adicionou ao classpath do seu projeto o driver JDBC do MySQL.

Baixe aqui a última versão.
Mais detalhes aqui.

Mas esse erro acontece dentro da sua IDE ou quando você executa o jar porque dependendo da situação pode ser alguma coisa diferente.

Essas duas linhas estão estranhas:

Class.forName(“com.mysql.jdbc.Driver”).newInstance();

Connection conexao = DriverManager.getConnection(“jdbc:mysql://localhost:aplicacao_comercial”,“user=root”,“password=”);

Acho que o correto seria:

//n precisa chamar newInstance();
Class.forName("com.mysql.jdbc.Driver");

//Onde 3306 é a porta padrão do mysql (pode precisar mudar dependendo da instalação do mysql na sua maquina
//Note tb que não precisa botar "user=" nem "password="... nesses campos vc coloca simplesmente os valores.
Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost:3306/aplicacao_comercial","root","");

Pelo que vi na pilha da exceção, a mesma aconteceu no método gravar() da classe aplicacaocomercial.FornecedorBD, então, caso as observações acima não resolvam seu problema, seria bom se vc o disponibilizasse para nós.

Galera valeu pela ajuda,

Mas passou a dar um novo erro, Esse :

09/09/2007 22:54:00 aplicacaocomercial.FormFornecedor jButton1ActionPerformed
SEVERE: null
java.lang.ClassCastException: com.mysql.jdbc.Statement cannot be cast to com.mysql.jdbc.PreparedStatement
        at aplicacaocomercial.FornecedorBD.gravar(FornecedorBD.java:18)
        at aplicacaocomercial.FormFornecedor.jButton1ActionPerformed(FormFornecedor.java:282)
        at aplicacaocomercial.FormFornecedor.access$100(FormFornecedor.java:10)
        at aplicacaocomercial.FormFornecedor$2.actionPerformed(FormFornecedor.java:70)
        at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
        at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
        at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
        at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
        at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
        at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
        at java.awt.Component.processMouseEvent(Component.java:6038)
        at javax.swing.JComponent.processMouseEvent(JComponent.java:3260)
        at java.awt.Component.processEvent(Component.java:5803)
        at java.awt.Container.processEvent(Container.java:2058)
        at java.awt.Component.dispatchEventImpl(Component.java:4410)
        at java.awt.Container.dispatchEventImpl(Container.java:2116)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322)
        at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986)
        at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916)
        at java.awt.Container.dispatchEventImpl(Container.java:2102)
        at java.awt.Window.dispatchEventImpl(Window.java:2429)
        at java.awt.Component.dispatchEvent(Component.java:4240)
        at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
        at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273)
        at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183)
        at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168)
        at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160)
        at java.awt.EventDispatchThread.run(EventDispatchThread.java:121)

Além disso percebi um X em cima do ícone da aplicação, se alguém souber o que pode ser isso.
Valeu pessoal …

Você sem querer deve ter importado o Statement errado,
ta usando o PreparedStatement implementado do my sql e tentando jg um statament dentro dele

Use a interface nativa PreparedStatiment e o comando con.prepareStatemente(String);

ou então continue com o createStatement, mas o Statemante tem que ser a interface nativa tambem

O método Conexao.Conectar() devolve um Statement e não um PreparedStatement, motivo pelo qual ocorre a exceção.
Neste método devolva somente uma Connection e, a partir daí, crie um Statement ou um PreparedStatement de acordo com a sua necessidade.

public class Conexao 
{ 
  public Connection Conectar() throws InstantiationException, IllegalAccessException, 
  ClassNotFoundException, SQLException,IOException
 {
   try
   {
     Class.forName("com.mysql.jdbc.Driver").newInstance(); 
     Connection conexao = DriverManager.getConnection("jdbc:mysql://localhost:aplicacao_comercial","user=root","password="); 
     
      return conexao; 
    } 
    catch(SQLException ex)
    { 
     System.err.println("SQLException: " + ex.getMessage()); 
     System.err.println("SQLState: " + ex.getSQLState()); 
     System.err.println("VendorError: " + ex.getErrorCode()); 
     
     return null; 
    } 
    catch(Exception e)
    { 
      JOptionPane.showMessageDialog(null,"Erro ao conectar com o banco de dados","Erro de " + 
      "Conexão",JOptionPane.ERROR_MESSAGE); 
      return null;  
    } 
}    
}//Fim da Classe 

Implementação para criar o Statement ou PreparedStatement

/*
 * tratamento de exceção omitido
 */

Connection conn = Conexao.Conectar();

// Statement
String sql = "select * from nome_tabela";
Statement stmt = conn.createStatement();
ResultSet rs = stmt.executeQuery(sql);			

//PreparedStatement
String comando = "update nome_tabela set campo = ? where id_campo = ?";
PreparedStatement ps = conn.prepareStatement( comando );

ps.setString(1, "valor");
ps.setIntI(2, 99);

ps.executeUpdate();

rs.close();
ps.close();
conn.close();

Pessoal, mais uma vez obrigado pela paciência e
pela ajuda de vocês

Fiz tudo o que vcs indicaram e esses problemas foram resolvidos, mas
apareceu um novo, sinto que estou quase lá. Segue a mensagem de
erro :

10/09/2007 10:01:58 aplicacaocomercial.FormFuncionario jButton1ActionPerformed
SEVERE: null
java.lang.NullPointerException
 at aplicacaocomercial.FuncionarioBD.gravar(FuncionarioBD.java:20)
        at aplicacaocomercial.FormFuncionario.jButton1ActionPerformed(FormFuncionario.java:284)
        at aplicacaocomercial.FormFuncionario.access$200(FormFuncionario.java:11)
        at aplicacaocomercial.FormFuncionario$3.actionPerformed(FormFuncionario.java:68)
        ...