Erro no código?

6 respostas
J

Amigos, tenho um código que conecta-me a mysql e deveria fazera leitura de uma tabela, no entanto não é o que acontece, e gera um erro. Gostaria que me alguem me orientasse se é um erro do código de configuração ou o que pode estar gerando esse erro.
Segue a baixo o código e o erro.

// Fig. 25.25: DisplayAuthors.java
// Exibindo o conteúdo da tabela authors.
import java.sql.Connection;
import java.sql.Statement;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;

public class DisplayAuthors 
{
   // nome do driver JDBC e URL do banco de dados
   static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";        
   static final String DATABASE_URL = "jdbc:mysql://localhost/nomeescolas";
   
   // carrega o aplicativo
   public static void main( String args[] )
   {
      Connection connection = null; // gerencia a conexão
      Statement statement = null; // instrução de consulta 
    
      // conecta-se ao banco de dados books e o consulta 
      try 
      {
         Class.forName( JDBC_DRIVER ); // carrega classe de driver do banco de dados

         // estabelece conexão com o banco de dados
         connection =                                                     
            DriverManager.getConnection( DATABASE_URL, "root", "root" );

         // cria Statement para consultar banco de dados
         statement = connection.createStatement();
         
         // consulta o banco de dados 
         ResultSet resultSet = statement.executeQuery(            
            "SELECT id, nomeescola FROM nomeescolas" );
         
         // processa resultados da consulta
         ResultSetMetaData metaData = resultSet.getMetaData();
         int numberOfColumns = metaData.getColumnCount();     
         
         
         for ( int i = 1; i <= numberOfColumns; i++ )
            System.out.printf( "%-8s\t", metaData.getColumnName( i ));
         System.out.println();
         
         while (resultSet.next()) 
         {
            for ( int i = 1; i <= numberOfColumns; i++ )
               System.out.printf( "%-8s\t", resultSet.getObject( i ));
            System.out.println();
         } // fim do while
      }  // fim do try
      catch (SQLException sqlException)                                
      {                                                                  
         sqlException.printStackTrace();
         System.exit( 1 );                                               
      } // fim do catch
      catch (ClassNotFoundException classNotFound)                     
      {                                                                  
         classNotFound.printStackTrace();            
         System.exit( 1 );                                               
      } // fim do catch
      finally // assegura que a instrução e conexão são fechadas adequadamente
      {                                                             
         try                                                        
         {                                                          
            statement.close();                                      
            connection.close();                                     
         } // fim do try
         catch ( Exception exception )                              
         {                                                          
            exception.printStackTrace();                            
            System.exit( 1 );                                       
         } // fim do catch
      } // fim do finally                                             
   } // fim de main
} // fim da classe DisplayAuthors

O erro:

java.lang.ClassNotFoundException: com.mysql.jdbc.Driver
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.Class.forName0(Native Method)
	at java.lang.Class.forName(Unknown Source)
	at DisplayAuthors.main(DisplayAuthors.java:25)

6 Respostas

F

Você colocou o arquivo .jar para a conexão com o mysql no local certo?
Pois não está encontrando o Driver.

C

Tu precisa setar o Driver do mysql no class-path da sua aplicacao.

R

Olá amigo,

Coloque o jar do driver mysql no classpath. O que eu faço aqui, nao sei se é o mais correto , é colocar o jar do driver do mysql em JAVA_HOME\jre\lib\ext , e colocar por exemplo JAVA_HOME\jre\lib\ext no classpath do sistema operacional.

Qualer coisa procura no google como setar o classpath no seu sistema operacional.

Valeu

G

Vc deve colocar o .jar do driver do MySQL no classpath, se estiver utilizando o ecplise, nas propriedades do projeto tem o Java Build Path, lá vc adiciona o jar no classpath.

Mesmo se vc já está com o classpath setado corretamente, procure alguma variação do caminho do Driver de conexão dentro do jar por causa da versão…

J

Obrigado irmãos… classpath configurada…só que agora da dando outro erro que eu tb não sei oque pode ser… lembrando que essa tabela ‘nomeescola’ foi criada no mysql manager. Onde simplesmente a criei e setei suas talbe fields e mais nada… Precisaria fazer mais alguma coisa? segue a baixo o erro:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'nomeescolas'
	at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:936)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:2870)
	at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:812)
	at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3269)
	at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1182)
	at com.mysql.jdbc.Connection.createNewIO(Connection.java:2644)
	at com.mysql.jdbc.Connection.<init>(Connection.java:1531)
	at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:266)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at java.sql.DriverManager.getConnection(Unknown Source)
	at DisplayAuthors.main(DisplayAuthors.java:29)

Obrigado irmãos

J

Resolvido… já descobri qual era o erro… obrigado

Criado 3 de outubro de 2006
Ultima resposta 3 de out. de 2006
Respostas 6
Participantes 5