Java.lang.NullPointerException

1 resposta
K

Olá pessoal, bom estou tendo o seguinte erro com o banco de dados.

Possuo dois codigos, um com acesso ao banco de dados e outro que faz as buscas no banco.

Buscas
package operacional;

import bd.banco;
import java.io.IOException;
import java.sql.Connection;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.Date;
import javax.swing.table.DefaultTableModel;

/**
 *
 * @author BEBIDAS FRUKI SA
 */
public class gera_tabela {
    
    /** Creates a new instance of gera_tabela */
    public gera_tabela() {
        try {
            try {
                banco.init();
            } catch (ClassNotFoundException ex) {
                ex.printStackTrace();
            } catch (IOException ex) {
                ex.printStackTrace();
            }
            conn = banco.getConnection();
            stat = conn.createStatement();
        } catch (SQLException ex) {
            ex.printStackTrace();
        }
        
    }
    public static DefaultTableModel modelo(int criterio, String tipo) throws SQLException{
        String[][] dados = null;
        
        dados = tabela(criterio,tipo);
        
        String[] colunas = new String []{"Codigo","Funcionário","Data","Hora","Solicitação"};
        DefaultTableModel modelo = new DefaultTableModel(dados, colunas);
        return modelo;
    }
    private static String[][] tabela(int criterio,String tipo) throws SQLException{
        String[][] tabela = new String[t(criterio,tipo)][6];
        int i=0;
                   
            ResultSet res = stat.executeQuery("SELECT * FROM "+tipo+" where estado = "+criterio);
            while(res.next()){
                Date data = res.getDate(3);
                Date hora = res.getDate(4);
                tabela[i][0] = res.getString(1);
                tabela[i][1] = res.getString(2);
                tabela[i][2] = res.getString(3);
                /*SimpleDateFormat formatador = new SimpleDateFormat("dd/MM/yyyy");
                String data_formatada = formatador.format(data);
                tabela[i][2] = data_formatada;*/
                tabela[i][3] = res.getString(4);
                /*SimpleDateFormat formatador_hora = new SimpleDateFormat("HH:mm");
                String hora_formatada = formatador_hora.format(hora);
                tabela[i][3] = hora_formatada;*/
                tabela[i][4] = res.getString(5);
                tabela[i][5] = res.getString(6);
                i++;
            }
        
        return tabela;
    }
    private static int t(int criterio, String Tipo) throws SQLException{
        int i =0;
        try {
            banco.init();
            System.out.println("SELECT * FROM "+Tipo+" where estado = "+criterio);
            ResultSet res = stat.executeQuery("SELECT * FROM "+Tipo+" where estado = "+criterio);
            while(res.next()){
                i++;
                System.out.println(i);
            }
        } catch (IOException ex) {
            ex.printStackTrace();
        } catch (ClassNotFoundException ex) {
            ex.printStackTrace();
        }
        return i;
    }
    private static Connection conn;
    private static Statement stat;
}
conexão
package bd;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;
import bd.*;
/**
 *
 * @author Kiko
 */
public class banco {
    
    /** Creates a new instance of banco */
    public static void init()
    throws IOException, ClassNotFoundException{
        Properties props = new Properties();
        FileInputStream in = new FileInputStream("c:/Suporte/suporte/bd.properties");
        props.load(in);
        /**String driver = props.getProperty("jdbc.driver");
         * url = props.getProperty("jdbc.url");
         * username = props.getProperty("jdbc.usuario");
         * password = props.getProperty("jdbc.senha");*/
        String hostName, userName, password, jdbcDriver, dataBaseName, dataBasePrefix, dataBasePort;
        hostName = props.getProperty("mysql.hostName");
        userName = props.getProperty("mysql.userName");
        password = props.getProperty("mysql.password");
        jdbcDriver = props.getProperty("mysql.jdbcDriver");
        dataBaseName = props.getProperty("mysql.dataBaseName");
        dataBasePrefix = props.getProperty("mysql.dataBasePrefix");
        dataBasePort = props.getProperty("mysql.dataBasePort");
        System.out.println(jdbcDriver);
        Class.forName(jdbcDriver);
        String url = dataBasePrefix + hostName + ":"+dataBasePort+"/" + dataBaseName + "/";
    
    }
    public static Connection getConnection()
    throws SQLException{
        return DriverManager.getConnection(url,username, password);
    }
    private static String url, username, password;
}

Ele tá me dando o seguinte erro

java.lang.NullPointerException

at operacional.gera_tabela.t(gera_tabela.java:83)

at operacional.gera_tabela.tabela(gera_tabela.java:54)

at operacional.gera_tabela.modelo(gera_tabela.java:47)

at grafica.index.jButton1ActionPerformed(index.java:607)

at grafica.index.access$000(index.java:17)

at grafica.index$1.actionPerformed(index.java:512)

at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)

at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)

at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)

at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)

at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)

at java.awt.Component.processMouseEvent(Component.java:5100)

at java.awt.Component.processEvent(Component.java:4897)

at java.awt.Container.processEvent(Container.java:1569)

at java.awt.Component.dispatchEventImpl(Component.java:3615)

at java.awt.Container.dispatchEventImpl(Container.java:1627)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)

at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)

at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)

at java.awt.Container.dispatchEventImpl(Container.java:1613)

at java.awt.Window.dispatchEventImpl(Window.java:1606)

at java.awt.Component.dispatchEvent(Component.java:3477)

at java.awt.EventQueue.dispatchEvent(EventQueue.java:480)

at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)

at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)

at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)

at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

Alguem sabe como eu resolvo esse erro????

1 Resposta

E

hum bom analisando o log…

o que tem na linha 83, da classe gera_tabela?

nessa linha que estourou o erro de ponteiro nulo…

verifique as regiões do seu código:

at grafica.index.jButton1ActionPerformed(index.java:607) at operacional.gera_tabela.modelo(gera_tabela.java:47) at operacional.gera_tabela.tabela(gera_tabela.java:54) at operacional.gera_tabela.t(gera_tabela.java:83)
os erros do console sempre seguem o genero, classe onde aconteceu o
erro “:” linha do erro, a sequencia aparece em ordem invertida, sendo a
primeira linha abaixo da descrição do erro onde estourou o erro, e as
próximas o fluxo executado antes do erro…

nessa sequencia que aparece :wink:
tu sabe usar debug? acho que irá te ajudar a corrigir o erro :grin:

Criado 30 de maio de 2006
Ultima resposta 30 de mai. de 2006
Respostas 1
Participantes 2