Hallo allerseits!
Ich hab folgendes Problem bei meinen ersten Datenbankversuchen: Ich krieg eine NullPointerException
Der Quellcode ist:
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?
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?