Erro no banco de dados

2 respostas
C

estou começando a ver banco de dados e enpaquei logo no primeiro exemplo do livro :sad:
o código é esse:

//exibindo conteudo 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/books";
    
    //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 classes de driver do banco de dados
            
            //estabelece conexão com o banco de dados
            connection = 
                    DriverManager.getConnection(DATABASE_URL, "jhtp6", "jhtp6");
            
            //cria Statement para consultar banco de dados
            ResultSet resultSet = statement.executeQuery(
                    "SELECT authorID, firstName, lastName FROM authors");
            
            //processa resultados da consulta
            ResultSetMetaData metaData = resultSet.getMetaData();
            int numberOfColumns = metaData.getColumnCount();
            System.out.println("Authors Table of books Database: ");
            
            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 so 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 e)
            {
                e.printStackTrace();
                System.exit(1);
            }//fim do catch
        }//fim do finally
    }//fim de main
}//fim da classe DisplayAuthors
quando eu compilo não tem erro, mas ao executar aparece o sequinte: java.lang.NullPointerException at DisplayAuthors.main( DisplayAuthors.java:65 )

quem puder ajudar, agradeço :)

[size="11"][color="red"]* Editado: Lembre-se de utilizar BBCode em seus códigos[/color][/size] :joia:

2 Respostas

M

Opa,

Tente debugar sua aplicação pois tem erro aí, talvez está gerando uma exceção antes e nem chega a criar o estado e o resultado da consulta.

Verifique se o driver está correto, se existe a tabela, banco informados…

:okok:

S

kra faltou você iniciar o statement antes de usar o ResultSet…

tenta isso…

statement = connection.createStatement();

abraços…

Criado 18 de agosto de 2007
Ultima resposta 19 de ago. de 2007
Respostas 2
Participantes 3