Class.forName(com.mysql.jdbc.Driver); ERRO!!

Java

09/04/2009

Unhandled exception type ClassNotFoundException Estou com esse erro na linha do class.forname.. pq esta dando isso? ja coloquei o .jar la no ext do jdk e no lib do jre.. la no projeto eu fiz um bluid path no .jar tambem.. o codigo eh esse
package pdrpack;
   
   import java.sql.*;

   class Bd
   {
   
      public static void main(String args[])
      {

      
      // A captura de exceções SQLException em Java é obrigatória para usarmos JDBC. 
      // Para termos acesso ao objeto con, ele deve ter um escopo mais amplo que o bloco try
      
      Connection con = null;       

      try 
      {
          // Este é um dos meios para registrar um driver 
          Class.forName("com.mysql.jdbc.Driver");
       
          // Registrado o driver, vamos estabelecer uma conexão
          con = DriverManager.getConnection("jdbc:teste","root","pedro");

          // Após estabelecermos a conexão com o banco de dados
          // Utilizamos o método createStatement de con para criar o Statement
          Statement stm = con.createStatement();  
   
          // Vamos executar o seguinte comando SQL :
          String SQL = "Select nome, idade from nomes";

          // Definido o Statement, executamos a query no banco de dados
          ResultSet rs = stm.executeQuery(SQL);
   
          // O método next() informa se houve resultados e posiciona o cursor do banco
          // na próxima linha disponível para recuperação
          // Como esperamos várias linhas utilizamos um laço para recuperar os dados
          while(rs.next())
          {

             // Os métodos getXXX recuperam os dados de acordo com o tipo SQL do dado:
             String nom = rs.getString("nome");
             String id = rs.getString("idade");
             

             // As variáveis tit, aut e totalFaixas contém os valores retornados 
             // pela query. Vamos imprimí-los

             System.out.println("nome: "+nom+" idade: "+id);
          }

      }
      catch(SQLException e)
      {
          // se houve algum erro, uma exceção é gerada para informar o erro 
          e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou
      }
      finally
      {
         try 
         {
            con.close();
         }
         catch(SQLException onConClose)
         {
             System.out.println("Houve erro no fechamento da conexão");
             onConClose.printStackTrace();
         }
      } // fim do bloco try-catch-finally
      } // fim da main
       
   } // fim de nosso primeiro exemplo !
Pdr33n

Pdr33n

Curtidas 0

Melhor post

Lais Lodi

Lais Lodi

25/11/2009

kkkkkkkkkkkkkkkkkkkkk é verdade... foi malz aí... hj msm a gente teve a continuação dessa matéria... pq ontem foi, como eu disse, apenas uma dica... mas realmente, me expressei mal... desculpa a gafe... sou nova na programação OO mas msm assim, espero ter ajudado em alguma coisa... :mrgreen:
GOSTEI 1

Mais Respostas

Edinei Manica

Edinei Manica

09/04/2009

Vc adicionou o Driver no class path ?
GOSTEI 0
Edinei Manica

Edinei Manica

09/04/2009

Olha se dentro do jar existe a classe no caminho com.mysql.jdbc.Driver
GOSTEI 0
Pdr33n

Pdr33n

09/04/2009

[quote="Edinei Manica"]Vc adicionou o Driver no class path ?
nao.. eu li que se eu jogasse o .jar no jdk lib/ext e no jre, ele ia funcionar sem classpath. existe o .Driver sim. o q pode ser?
GOSTEI 0
Dennisrosa

Dennisrosa

09/04/2009

tem certeza que jogou o driver no diretorio : <JDK>\jre\lib\ext ? Não tem como não funcionar :-) Um abraço, Dennis
GOSTEI 0
Pdr33n

Pdr33n

09/04/2009

eu acho que agora eu consegui. refiz o programa inteiro ai funcionou. ele nao roda no DOS com o comando java nao? é por causa do build path? estou usando o eclipse. vlw
GOSTEI 0
Lais Lodi

Lais Lodi

09/04/2009

qndo tentei conectar com o banco, encontrei o msm problema... minha professora de programação me deu uma dica... q achei interessante: ela disse q o netBeans está "nos forçando" a adicionar um tratamento de excessão... q é a abordada em negrito. Comigo deu certo, tomara q ajude! =D
public class BD{

     public static void main (String args[]){
        // conecção com o BD
        Connection con = null; 
        try
        {
            // Este é um dos meios para registrar um driver
            Class.forName("com.mysql.jdbc.Driver");

            // Registrado o driver, vamos estabelecer uma conexão
            con = DriverManager.getConnection("jdbc:database","login","senha");

            // Após estabelecermos a conexão com o banco de dados
            // Utilizamos o método createStatement de con para criar o Statement
            Statement stm = con.createStatement();

            // Vamos executar o seguinte comando SQL :
            String SQL = "delete * from cliente where cliente.codigo = codigo;";

            // Definido o Statement, executamos a query no banco de dados
            stm.executeUpdate(SQL);
        }
        catch(SQLException e)
        {
            // se houve algum erro, uma exceção é gerada para informar o erro
            e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou
        }
         // CORREÇÃO
         catch(ClassNotFoundException e)
         {
             // se houve algum erro, uma exceção é gerada para informar o erro
             e.printStackTrace(); //vejamos que erro foi gerado e quem o gerou
         }
         // FIM DA CORREÇÃO
        finally
        {
            try
            {
                con.close();
            }
            catch(SQLException onConClose)
            {
                System.out.println("Houve erro no fechamento da conexão");
                onConClose.printStackTrace();
            }
        } // fim do bloco try-catch-finally

        return true;
    }
}
GOSTEI 0
Ricardo Staroski

Ricardo Staroski

09/04/2009

[quote="laislodi"]minha professora de programação me deu uma dica... q achei interessante: ela disse q o netBeans está "nos forçando" a adicionar um tratamento de excessão
Hmmmm... Aqui vai uma dica pra sua professora de programação: O NetBeans, eclipse, JCreator, Notepad ou seja lá o que você utiliza para escrever código Java, [b]não força você a nada[/b]. Quem "força" você a tratar excessões, ou passá-las adiante, é um carinha chamado "Compilador Java". Esta é uma das principais características que tornaram a liguagem de programação Java tão robusta. Se algum trecho de código pode lançar uma excessão você só tem duas saídas: 1ª - Tratar a excessão com um bloco [b]try - catch[/b] 2ª - Passar a excessão adiante através de um [b]throws[/b] fazendo com que outro código se encarregue de tratá-la.
GOSTEI 0
POSTAR