Avatar billede touel Nybegynder
16. oktober 2008 - 19:51 Der er 13 kommentarer og
1 løsning

Er der noget i vejen med Resultser ?

Har følgende metode, hvor jeg får NullPointerException. Hvorfor ?

static void hentBrugerInfo()

    {
       
       
        try
        {
           
            ResultSet rs = stmt.executeQuery("select brugernavn from person where personid='1'");
            int k=0;
           
            System.out.println("Du har valgt bruger nr: "  );
            while (rs.next())
              {
                String navn = rs.getString("brugernavn");
                k++;
                System.out.println(k+" "+navn);
              }
        }
        catch(SQLException e)
        {
            System.out.println(e.getMessage());
        }
    }
Avatar billede touel Nybegynder
16. oktober 2008 - 19:52 #1
Det er især sætningen med Resultset, den siger der er fejl i.
Avatar billede erikjacobsen Ekspert
16. oktober 2008 - 19:54 #2
Hvis det er linien med "stmt" du mener, så kan det jo være at stmt-variabler er null.
Avatar billede touel Nybegynder
16. oktober 2008 - 20:07 #3
Har lige prøvet at skrive

stmt=forb.createStatement();

ovenover ResultSet sætningen, og nu giver den NullPointerExcep der ?
Avatar billede erikjacobsen Ekspert
16. oktober 2008 - 20:14 #4
Så kunne forb-variablen være null.
Avatar billede touel Nybegynder
16. oktober 2008 - 20:16 #5
sådan kan vi jo blive ved... jeg smider lige hele min db klasse:

import java.sql.*;
import java.util.*;

public class database  {
   
    static String navn;
    static String pwd;
    static ArrayList  arraylist;
    static ArrayList info;
    static Connection forb;
    static Statement stmt ;
    static char p;
   
    public database() {};
   
    public database(String n,String pwd, ArrayList  arrlist){
        super();
        this.navn = n;
        this.pwd = pwd;
        this.arraylist = arrlist;
       
        final String temp="";
       
       
        String url="";
        try
        {
            Class.forName("com.mysql.jdbc.Driver");
            url ="jdbc:mysql://localhost:3306/passwordtest";
           
            forb =DriverManager.getConnection(url,"root", "fesout");
            System.out.println("Følgende data indsættes: "  +" "+ navn +" " +pwd +" "+ arraylist);
             
        }   
        catch(SQLException e)
        {
            System.out.println(e.getMessage());
        }
        catch(ClassNotFoundException e)
        {
            System.out.println(e.getMessage());
        }
        System.out.println("URL " + url);
       
        hentBrugerInfo(p);
    }
   
    public static void gemData()
    {
        try
        {
            stmt = forb.createStatement();
            stmt.executeUpdate("insert into person(brugernavn,password)" +
                    " values('"+navn+"','"+pwd+"'"
                    + ")");
            for(int i=0;i<arraylist.size();i++)
                stmt.executeUpdate("insert into persongentagpwd(personid,ix,gentagpwd)" + "values(last_insert_id(),'"+i+"','"+arraylist.get(i)+"')");
        }
        catch (SQLException e)
        {
            System.out.println(e.getMessage());
        }
       
    }
   
    static void hentBrugerInfo(char bruger)

    {
        char t= bruger;
        System.out.println(t);
        try
        {
           
            stmt=forb.createStatement();
            System.out.println("char t er lig med " +stmt);
            ResultSet rs = stmt.executeQuery("select brugernavn from person where personid='"+t+"'");
            int k=0;
           
            System.out.println("Du har valgt bruger nr: " +t );
            while (rs.next())
              {
                String navn = rs.getString("brugernavn");
                k++;
                System.out.println(k+" "+navn);
              }
        }
        catch(SQLException e)
        {
            System.out.println(e.getMessage());
        }
    }
   
    public static int hentAntalForsog(int fejl)
    {
        int k=fejl;
        try
        {
            ResultSet rs = stmt.executeQuery("select personid from persongentagpwd where personid="+k+"");
           

            while (rs.next())
            {

                for(int s=0; s < arraylist.size();s++)
                {
                    System.out.println("DHOLLANDIA"+arraylist.get(s));
                }
             
           
            }
           
        }
        catch(SQLException e)
        {
            System.out.println(e.getMessage());
        }
        return k;
    }
   
    public static void main(String[] arg) throws Exception
      {       
        database db = new database(navn,pwd,arraylist);
       
        gemData();
        hentBrugerInfo(p);
       
      }
}
Avatar billede erikjacobsen Ekspert
16. oktober 2008 - 20:21 #6
Det er noget rod. Du skal ikke bruge static-variabler og -metoder her.
Avatar billede touel Nybegynder
16. oktober 2008 - 20:23 #7
Enlight me :-)
Avatar billede erikjacobsen Ekspert
16. oktober 2008 - 20:41 #8
I hvilken sammenhæng lærer du Java? Hvad har du af materiale at kigge i?
Avatar billede touel Nybegynder
16. oktober 2008 - 20:48 #9
kursus på skolen... jeg har det teoretiske på plads... mangler bare en MASSE praktisk erfaring.... Skal lære det så meget som muligt.... Af læse materiale: nettet

jeg har pt fjernet static fra "stmt" og "forb" og fra metoderne også...  men får stadig fejl ved samme sted som før omtalt.
Avatar billede erikjacobsen Ekspert
16. oktober 2008 - 21:04 #10
Du har nu ikke det teoretiske på plads. Jeg har hverken tid eller lyst til at lære dig det fra bunden. Du må fra skolen have fået materiale, der kan vise dig normal brug af klasser og objekter.
Avatar billede touel Nybegynder
16. oktober 2008 - 21:28 #11
ok, jeg roder bare videre selv med det... lægger du svar !
Avatar billede erikjacobsen Ekspert
16. oktober 2008 - 21:36 #12
Nej tak. Men når du roder videre, spørg igen. Udtrykket "rode" er måske ikke det du skal gå efter ;) Du skal læse dig til hvordan man gør. Og måske starte med simplere eksempler.
Avatar billede touel Nybegynder
16. oktober 2008 - 21:43 #13
måske har du tænkt over at jeg har samlet alle metoder i db klassen, som gør det uoverskueligt. Tja det er også rigtig, lige nu vil jeg bare have noget kørende. Det var meningen at jeg bagefter ville splitte det op i mindre klasser(hjælpeklasser).

Det er også derfor jeg har en masse static variabler og metoder med... det skal virke, så kan man gøre det pænere bagefter
Avatar billede touel Nybegynder
03. november 2008 - 16:59 #14
.
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