NullPointerException trotz getConnection

Status
Nicht offen für weitere Antworten.

Azador

Mitglied
Hallo allerseits!

Ich hab folgendes Problem bei meinen ersten Datenbankversuchen: Ich krieg eine NullPointerException
Code:
java.lang.NullPointerException

	at dbtest.main(dbtest.java:48)

Der Quellcode ist:

Code:
import java.sql.*;
import javax.swing.*;
import java.lang.*;
//import com.mysql.jdbc.Driver; <-- nötig?

public class dbtest
{

  final static String driver = "com.mysql.jdbc.Driver";
  final static String dburl = "jdbc:mysql://localhost/java_test";

  public static void main(String[] args)
    {

    Connection con = null;
    Statement stat = null;
    
    try
      {
      Class.forName(driver);
      con = DriverManager.getConnection(dburl,"root","");
      stat = con.createStatement();
      ResultSet rs = stat.executeQuery("SELECT Name FROM helden");

      JOptionPane.showMessageDialog( null, "Name: "+rs, "Ausgabe", JOptionPane.PLAIN_MESSAGE );
      while (rs.next())
        {
        JOptionPane.showMessageDialog(null,"Name: "+rs.getObject(1), "Ausgabe", JOptionPane.PLAIN_MESSAGE );
        }
      }
    catch (SQLException sqlException)
      {
      JOptionPane.showMessageDialog( null, "SQL Exception", "Ausgabe", JOptionPane.PLAIN_MESSAGE );
      sqlException.printStackTrace();
      System.exit(1);
      }
    catch (ClassNotFoundException classNotFound)
      {
      JOptionPane.showMessageDialog( null, "ClassNotFound Exception", "Ausgabe", JOptionPane.PLAIN_MESSAGE );
      classNotFound.printStackTrace();
      System.exit(1);
      }
    finally
      {
      JOptionPane.showMessageDialog( null, "Stat: " +stat+" Con: "+con, "Ausgabe", JOptionPane.PLAIN_MESSAGE ); //Test-Ausgabe
      try
        {
        stat.close();
        con.close();
        }
      catch (Exception exception)
        {
        exception.printStackTrace();
        System.exit(1);
        }
      }
    }
}

In meinem Beispielcode steht, dass man die Variablen stat und con erst mit null belegt. Bei der Testausgabe in Zeile 45 wird allerdings WIRKLICH ausgegeben stat: null und con: null - aber ich dachte ich habe die Variablen in den Zeilen 21/22 mit Objekten belegt. Wie können die noch null sein? Klar, dass ich eine stat Variable mit "null" drin nicht "closen" kann. Aber warum funktioniert die Belegung nicht?

Habe die Suchfunktion zwar benutzt und u.a. auch Themen zu einem ähnlichen(?) Problem gefunden, die Lösung aber nicht verstanden. Vielleicht versucht Ihr Euch nochmal an meinem Code. Wäre supernett, danke!

In Hoffnung auf Hilfe, Azador

[Edit:] Achja, und wie ist das? Muss ich den Treiber extra noch importieren (hier jetzt rauskommentiert). Wenn ja, wie? In meinem Projekt im JBuilder habe ich den Treiber als "benötigte Bibliothek" eingetragen. Reicht das?
 

KSG9|sebastian

Top Contributor
1. poste mal den ganzen exception-trace (ex.printStackTrace())
2. ist der mysql-connector im classpath aufgenommen
3. wo bekommst du die NullPointerException ? Zeile 48 hilft mir nicht, da die Zeilennummern nicht stimmen ?
 

Azador

Mitglied
Erstmal vielen, vielen Dank für die rasche Antwort!

1.
C:\JBuilderX\jdk1.4\bin\javaw -classpath "H:\JavaProjects\dbtest\classes;C:\JBuilderX\mysql-connector-java-3.1.10\mysql-connector-java-3.1.10-bin-g.jar;C:\JBuilderX\mysql-connector-java-3.1.10\mysql-connector-java-3.1.10-bin.jar;C:\JBuilderX\jdk1.4\demo\jfc\Java2D\Java2Demo.jar;C:\JBuilderX\jdk1.4\demo\plugin\jfc\Java2D\Java2Demo.jar;C:\JBuilderX\jdk1.4\jre\javaws\javaws.jar;C:\JBuilderX\jdk1.4\jre\lib\charsets.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\dnsns.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\ldapsec.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\localedata.jar;C:\JBuilderX\jdk1.4\jre\lib\ext\sunjce_provider.jar;C:\JBuilderX\jdk1.4\jre\lib\im\indicim.jar;C:\JBuilderX\jdk1.4\jre\lib\im\thaiim.jar;C:\JBuilderX\jdk1.4\jre\lib\jce.jar;C:\JBuilderX\jdk1.4\jre\lib\jsse.jar;C:\JBuilderX\jdk1.4\jre\lib\plugin.jar;C:\JBuilderX\jdk1.4\jre\lib\rt.jar;C:\JBuilderX\jdk1.4\jre\lib\sunrsasign.jar;C:\JBuilderX\jdk1.4\lib\dt.jar;C:\JBuilderX\jdk1.4\lib\htmlconverter.jar;C:\JBuilderX\jdk1.4\lib\tools.jar" dbtest
java.lang.NullPointerException

at dbtest.main(dbtest.java:48 )

so, das ist alles was von JBuilder ausgegeben wird.

2. Muss der Connector noch manuell unter Systemsteuerung->System->Umgebungsvariablen etc. aufgenommen werden? Gilt das für JEDES Addon, das ich im Nachinein downloade und verwenden will?

3. Doch die Zeilennummern müssten eigentlich stimmen. Er kann die Variable stat nicht stat.close ausführen, weil da halt null drin steht.
 

Bleiglanz

Gesperrter Benutzer
2) NEIN

woher kommt der Doppeleintrag?

C:\JBuilderX\mysql-connector-java-3.1.10\mysql-connector-java-3.1.10-bin-g.jar;
C:\JBuilderX\mysql-connector-java-3.1.10\mysql-connector-java-3.1.10-bin.jar;

import java.lang.*; // das ist quatsch

//import com.mysql.jdbc.Driver; <-- nötig? // nein unnötig!

und.
Code:
        } catch (ClassNotFoundException classNotFound) {
            JOptionPane.showMessageDialog(null, "ClassNotFound Exception",
                    "Ausgabe", JOptionPane.PLAIN_MESSAGE);
            classNotFound.printStackTrace();
            System.exit(1);
sollte eigentlich ausgeführt werden???
 

Azador

Mitglied
Bleiglanz hat gesagt.:
OK :)

woher kommt der Doppeleintrag?

C:\JBuilderX\mysql-connector-java-3.1.10\mysql-connector-java-3.1.10-bin-g.jar;
C:\JBuilderX\mysql-connector-java-3.1.10\mysql-connector-java-3.1.10-bin.jar;

naja, in dem Archiv waren halt zwei .jar Dateien. Da dachte ich halt, doppelt gemoppelt hält besser :lol:
hab den Eintrag mit *bin-g.jar entfernt.

import java.lang.*; // das ist quatsch
Sagst Du so! Ich hab mit dem blöden JBuilder zeitweise das Problem gehabt, dass er den Typ "String" nicht erkannt hat... naja, ich hab's rausgemacht und jetzt funzts es immer noch :wink:

//import com.mysql.jdbc.Driver; <-- nötig? // nein unnötig!
ok, rausgelöscht.

und.
Code:
        } catch (ClassNotFoundException classNotFound) {
            JOptionPane.showMessageDialog(null, "ClassNotFound Exception",
                    "Ausgabe", JOptionPane.PLAIN_MESSAGE);
            classNotFound.printStackTrace();
            System.exit(1);
sollte eigentlich ausgeführt werden???
naja, das wurde nie aufgerufen irgendwie... keine Ahnung.

Aber das wichtigste: ES FUNKTIONIERT JETZT!!!
Leider versteh ich jetzt nicht, welcher Kommentar es war, den ich gelöscht hab, um es zum Laufen zu kriegen. Ich mache ja noch nicht lange Java - aber ich hab irgendwie so das Gefühl, dass die Fehlermeldungen irgendwie kaum mit dem Problem zusammenhängen oder nur über 15 Ecken.... Es ist ziemlich frustrierend wenn man meint nichts geändert zu haben und auf einmal klappts... naja egal. Vielleicht erkenn ich mehr, wenn ich mehr und mehr bei java durchsteig.

Vielen Dank!!!
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
V SQLite NullPointerException in preparedStatement.close(); Datenbankprogrammierung 8
C NullPointerException auf 1nem Rechner von 2 Datenbankprogrammierung 19
X SQLite Erhalte bei Query INSERT INTO eine NullPointerException Datenbankprogrammierung 10
H HSQLDB Beim öffnen folgender Fehler: ... java.lang.NullPointerException Datenbankprogrammierung 1
D Oracle NullPointerException bei select mit Null Values Datenbankprogrammierung 5
D NullPointerException bei DB Verbindung Datenbankprogrammierung 6
T NullPointerException bei Verbindung zur Datenbank Datenbankprogrammierung 4
T NullpointerException Datenbankprogrammierung 10
B ResultSet wirft komische NullPointerException. Datenbankprogrammierung 3
J Derby/JavaDB NullPointerException bei VORHANDENEM EntityManager-Objekt!!! Datenbankprogrammierung 3
Q java.lang.NullPointerException connection = null Datenbankprogrammierung 13
T NullPointerException ( EclipseLink mit OSGi) Datenbankprogrammierung 10
T JPA: NullPointerException nach persist Datenbankprogrammierung 3
A NullPointerException bei DB-Abfrage Datenbankprogrammierung 2
S Jar-Ausführung / RMI / Datenbank / NullPointerException Datenbankprogrammierung 30
S nullpointerexception bei HSQLDB Datenbankprogrammierung 4
T NullPointerException bei leeren Feldern Datenbankprogrammierung 10
R NUllPointerException bei Datenbankabfrage Datenbankprogrammierung 4
S Hsqldb java.lang.NullPointerException Datenbankprogrammierung 2
H java.lang.NullPointerException Datenbankprogrammierung 7
P Probleme mit NullPointerException Datenbankprogrammierung 5
B SQlite Datenbank, trotz Statements wurden nicht alle Zeilen erzeugt? Datenbankprogrammierung 35
M SQL-Exception trotz funktionierendem SELECT Datenbankprogrammierung 4
R Fehler 2601 trotz SQL-UPDATE ? Datenbankprogrammierung 2
E ClassNotFoundException bei verschiedenen MS SQL Treibern trotz Classpath-Eintrag Datenbankprogrammierung 5
T filtern nach expliziten Worten trotz LIKE '%Wort%' Datenbankprogrammierung 2
S Firebird NoClassDefFoundError trotz erfolgreichem Class.forName(...) unter Linux Datenbankprogrammierung 5
V 3x selbes Ergebnis trotz 3x verschiedene Ergebnisse? Datenbankprogrammierung 2
M executeBatch() - Inserts trotz Fehler weitermachen Datenbankprogrammierung 5
H Fehler bei getConnection zu MySQL Datenbank Datenbankprogrammierung 18
I Datenbankverbindung Oracle DB klappt nicht - getConnection returned null Datenbankprogrammierung 8
C Drivermananger.GetConnection Datenbankprogrammierung 1
L Probleme mit DriverManager.getConnection(..) - Endlosschleife, Java Absturz, Keine Exception Datenbankprogrammierung 4
M MySQL getConnection - Verbindung Problem Datenbankprogrammierung 2
G getConnection() liefert null Datenbankprogrammierung 3
D getConnection mit SQLException Datenbankprogrammierung 7
C java.sql.DriverManager.getConnection(Unknown Source) Datenbankprogrammierung 6
G DriverManager.getConnection Datenbankprogrammierung 3

Ähnliche Java Themen


Oben