Avatar billede gigabooster Nybegynder
03. maj 2002 - 16:19 Der er 3 kommentarer og
1 løsning

NullPointerException

Når jeg compiler denne kode: try{

String query = "SELECT * FROM GUEST;";
            rs = state.executeQuery(query);
}
catch (SQLException fejl3) {
        System.err.println ("Kunne ikke laese data fra dababasen\nFejlen er: ");
        }

Kommer der en NullPointerException frem...
Efter progremmet er compilet med CTRL+1 og når jeg så skal se "resultatet"
Hvad kan det skyldes?
Avatar billede jkrag Nybegynder
03. maj 2002 - 16:35 #1
Kan du ikke lige poste dit stacktrace - så kan vi bedre se hvad der går galt.
Evt. også lidt mere af din kode. Jeg kan f.eks. ikke se om state er null når du prøver at kalde en metode på den. (hvilket vil give NullPointer).
Avatar billede gigabooster Nybegynder
03. maj 2002 - 16:37 #2
ved ikke lige hvad stacktrace er men her har du koden...
import java.util.*;
import java.sql.*;


class basetest {

    ResultSet rs;
Statement state;
    basetest(){

try{
databaseForbindelse();

}
catch (ClassNotFoundException fejl1){
    System.out.println("narkoman");
}
try{

String query = "SELECT * FROM GUEST;";
            rs = state.executeQuery(query);

}


catch (SQLException fejl3) {
        System.err.println ("Kunne ikke laese data fra dababasen\nFejlen er: ");
        }
            //DatabaseMetaData dbMeta = conn.getMetaData();
            //System.out.println(dbMeta);
        //}

        //catch(SQLException q){
        //    System.out.println(q);
        //}

try {

ResultSetMetaData rsMeta = rs.getMetaData();

int j = rsMeta.getColumnCount();
System.out.println(j);

//for(int i=0;i<2;i++){
//    rs.next();
//        String s = rs.getString(1);
//        String t = rs.getString(2);
//        String u = rs.getString(3);
//        String v = rs.getString(4);
//        String x = rs.getString(5);
//        String y = rs.getString(6);

//        System.out.println(s + " " + t + " " + u + " " + v + " " + x + " " +y);
//        }
    //rs.next();

    //    String x = rs.getString(1);
    //    String c = rs.getString(2);
    //    System.out.println(x + " " + c);

        }
        catch (SQLException fejl3) {
        System.err.println ("Kunne ikke laese data fra dababasen\nFejlen er: "+
        fejl3);
        }
    }



void databaseForbindelse()throws ClassNotFoundException{

    //Initialiserer databasen
    String username = "sysdba";
    String password = "masterkey";

    String protokol = "jdbc:interbase";
    String server = "localhost";
    String placering = "c:/database/hoteladm.gdb";

    String driver = "interbase.interclient.Driver";

    String databaseURL = protokol + "://" + server + "/" + placering;

    try{
        Class.forName(driver);
        Connection dbconn = DriverManager.getConnection (databaseURL, username, password);
        Statement state = dbconn.createStatement();
    }

    catch(SQLException q){
        System.out.println(q);

    }

}
public static void main (String [] args){
        new basetest();
    }
}
Avatar billede nute Nybegynder
03. maj 2002 - 16:44 #3
du deklarerer en lokal variabel nede i din 'databaseForbindelse' metode med samme navn som din globale (state). Bytt ut denne linje:

Statement state = dbconn.createStatement();

med denne:

state = dbconn.createStatement();

så skal det nok fungere
Avatar billede gigabooster Nybegynder
03. maj 2002 - 16:52 #4
Jeg må bøje mig i støvet ooooh mester, mange tak nu skal jeg bare finde ud af at give dig point....
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester