Java NullPointerException

Status
Nicht offen für weitere Antworten.

alaska94

Aktives Mitglied
Hallo,

ich versuche mich gerade an Java und Datenbanken.

Ich habe folgende zwei Klassen geschrieben.

Code:
import java.sql.ResultSet;
import java.sql.SQLException;

public class Ausgaben {

	/**
	 * @param args
	 * @throws SQLException 
	 */
	public static void main(String[] args) throws SQLException {
		// TODO Auto-generated method stub
		Datenbank db=new Datenbank();
		ResultSet result;
		db.verbinden();
		result=db.auslesen("Select * from benutzer");
		System.out.println(result.getString(1));
	}

}

Code:
import java.sql.*;

public class Datenbank {

	private Connection con;
	private Statement stm;
	private String treiber="jdbc:mysql://localhost/user";
	private String user="root";
	private String pwd="";
	private ResultSet result;

	public void verbinden(){
		try
	    {
	      Class.forName("com.mysql.jdbc.Driver");
	    }
	    catch ( ClassNotFoundException e )
	    {
	      System.err.println( "Keine Treiber-Klasse!" );
	      return;
	    }
	    try {
			con=DriverManager.getConnection(treiber,user,pwd);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
	
	public ResultSet auslesen(String sql){
		
		try {
			result=stm.executeQuery(sql);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return result;
	}
	
	
	
}

Beim Ausführen erhalte ich folgende Meldung


  • Exception in thread "main" java.lang.NullPointerException
    at Datenbank.auslesen(Datenbank.java:33)
    at Ausgaben.main(Ausgaben.java:15)

Wer kann mir hier weiterhelfen?
 

foobar

Top Contributor
Dein Statement ist null, ist doch klar daß das knallt.
http://java.sun.com/j2se/1.3/docs/api/java/sql/Connection.html#createStatement()

Code:
public ResultSet auslesen(String sql){
      stmt = con.createStatement();
      try {
         result=smt.executeQuery(sql);
      } catch (SQLException e) {
         // TODO Auto-generated catch block
         e.printStackTrace();
      }
      return result;
   }
 

SnooP

Top Contributor
du hast von der Klasse Statement kein Objekt erstellt... stm ist demnach null ... wenn man darauf ne Methode aufrufen will: stm.executeQuery sprich null.executeQuery geht das nicht, weil null numal nix mit executeQuery kann ;) - dies führt zu einer allseits beliebten NullPointerException.
Sprich du musst vorher dafür sorgen, dass nen Statement Objekt erstellt wird (new Statement...) oder vielmehr createStatement Methode von Connection aufrufen...

edit: mist ;) - zu spät
 

alaska94

Aktives Mitglied
Jetzt gibt er mir die Daten leider nicht aus.
Meine meine Klassen wie folgt umgeändert.


Code:
import java.sql.*;

public class Datenbank {

	private Connection con;
	private Statement stm;
	private String treiber="jdbc:mysql://localhost/user";
	private String user="root";
	private String pwd="";
	private ResultSet result;

	public void verbinden(){
		try
	    {
	      Class.forName("com.mysql.jdbc.Driver");
	      
	    }
	    catch ( ClassNotFoundException e )
	    {
	      System.err.println( "Keine Treiber-Klasse!" );
	      return;
	    }
	    try {
	    	con=DriverManager.getConnection(treiber,user,pwd);
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.err.println(e.getSQLState());
			System.err.println(e.getErrorCode());
		}
	}
	
	public ResultSet auslesen(String sql) {
	      try {
			stm = con.createStatement();
		} catch (SQLException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
			System.err.println(e1.getSQLState());
		    System.err.println(e1.getErrorCode());
		}
	      try {
	         result=stm.executeQuery(sql);
	      } catch (SQLException e) {
	         // TODO Auto-generated catch block
	         e.printStackTrace();
	         System.err.println(e.getSQLState());
			 System.err.println(e.getErrorCode());
	      }
	     
	     return result;
	    } 
	
	
	
}

Code:
import java.sql.ResultSet;
import java.sql.SQLException;

public class Ausgaben {

	/**
	 * @param args
	 * @throws SQLException 
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Datenbank db=new Datenbank();
		String abfrage="Select * from benutzer";
		ResultSet result;
		db.verbinden();
		result=db.auslesen(abfrage);
		try {
			System.out.println(result.getString(2));
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
			System.err.println("Sqlstate= "+e.getSQLState());
			System.err.println(e.getErrorCode());
		}
		try {
			result.close();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}

}

Folgende Fehlermeldung erhalte ich.

java.sql.SQLException: Before start of result set
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:910)
at com.mysql.jdbc.ResultSet.checkRowPos(ResultSet.java:692)
at com.mysql.jdbc.ResultSet.getStringInternal(ResultSet.java:5487)
at com.mysql.jdbc.ResultSet.getString(ResultSet.java:5431)
at Ausgaben.main(Ausgaben.java:18)
S1000
0
Was habe ich nun schon wieder falsch gemacht :-(
 

RaoulDuke

Bekanntes Mitglied
Ein next() auf das ResultSet musst du noch machen damit du auf dem ersten Datensatz stehst.

Sagt die SQLException ja auch: "Before start of result set"

Mach es so:

Code:
if (result.next()){
    System.out.println(result.getString(2)); 
    }
else{
    System.out.println("Keine Daten gefunden"); 
}

Oder wenn du mehr als nur die erste Zeile willst:

Code:
while(result.next()){
    System.out.println("Feld1: "+result.getString(1)); 
    System.out.println("Feld2: "+result.getString(2)); 
}

Das gibt dann alle gefundenen Zeilen aus. Bzw jeweils deren ersten beiden Felder.
 

RaoulDuke

Bekanntes Mitglied
Ausserdem nutzt dir folgendes nur begrenzt:

Code:
try
       {
         Class.forName("com.mysql.jdbc.Driver");
        
       }
       catch ( ClassNotFoundException e )
       {
         System.err.println( "Keine Treiber-Klasse!" );
         return;
       }

Da du nirgendwo prüfst ob die db.verbinden() funktioniert hat. Das bringt dir eigentlich nur das du eine Ausgabe bekommst, und dann hinterher auf eine weitere Exception läufst wenn du auslesen() aufrufst. Die wird dann zwar auch abgefangen, aber dann ist dein ResultSet nicht definiert und du bekommst beim result.next() eine NullPointerException.
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
H Java NullPointerException Java Basics - Anfänger-Themen 4
F Fehlermeldung java.lang.NullPointerException Java Basics - Anfänger-Themen 4
D java.lang.NullPointerException Java Basics - Anfänger-Themen 19
X java.lang.NullPointerException fehler ? Java Basics - Anfänger-Themen 1
B java.lang.NullPointerException bei javafx Java Basics - Anfänger-Themen 10
R Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 10
H java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G java.lang.NullPointerException Java Basics - Anfänger-Themen 3
E Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 2
J java.lang.NullPointerException in meiner JavaFXControllerKlasse Java Basics - Anfänger-Themen 26
D Communications link failure | java.lang.NullPointerException Java Basics - Anfänger-Themen 3
F java.lang.NullPointerException, kann aber nicht sein! Java Basics - Anfänger-Themen 4
D Java Fehler: NullPointerException Java Basics - Anfänger-Themen 1
M Compiler-Fehler Java suckt - java.lang.NullPointerException Java Basics - Anfänger-Themen 12
L Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S java.lang.NullPointerException Java Basics - Anfänger-Themen 4
G Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 4
A Compiler-Fehler Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 7
P Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 3
T Problem mit Eclipse? Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 4
S Fehler: "java.lang.NullPointerException" Java Basics - Anfänger-Themen 6
I Erste Schritte Ausführfehler: java.lang.NullPointerException Java Basics - Anfänger-Themen 3
1 Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException Java Basics - Anfänger-Themen 5
S Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 11
V [Greenfoot] java.lang.NullPointerException Java Basics - Anfänger-Themen 12
S Compiler-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 10
C NullPointerException > java.nio.BufferUnderflowException Java Basics - Anfänger-Themen 14
J java.lang.NullPointerException Java Basics - Anfänger-Themen 18
K Interpreter-Fehler java.lang.NullPointerException Java Basics - Anfänger-Themen 6
K OOP java.lang.NullPointerException Java Basics - Anfänger-Themen 2
B Exception in thread "main" java.lang.NullPointerException Fehler Hilfe! Java Basics - Anfänger-Themen 4
S Fehlermeldung: java.lang.NullPointerException Java Basics - Anfänger-Themen 10
A Exception in thread "main" java.lang.NullPointerException Java Basics - Anfänger-Themen 16
K java.lang.NullPointerException in Array bei Arraylistübergabe Java Basics - Anfänger-Themen 7
G java.lang.NullPointerException Was tun? Java Basics - Anfänger-Themen 7
J java.lang.NullPointerException . Java Basics - Anfänger-Themen 5
G java.lang.NullPointerException Java Basics - Anfänger-Themen 2
S java.lang.NullPointerException - Bitte helft mir! Java Basics - Anfänger-Themen 5
S java.lang.NullPointerException Fehler bei Umrechnung Java Basics - Anfänger-Themen 3
P java.lang.NullPointerException Java Basics - Anfänger-Themen 19
M java.lang.NullPointerException at . Java Basics - Anfänger-Themen 4
S java.lang.nullpointerexception bei arrayübergabe Java Basics - Anfänger-Themen 30
S java.lang.NullPointerException bei Bildern Java Basics - Anfänger-Themen 13
P java.lang.NullPointerException was ist das? Java Basics - Anfänger-Themen 7
G java.lang.NullPointerException beim objekt Java Basics - Anfänger-Themen 3
J Probleme mit drucken aus Java Java Basics - Anfänger-Themen 3
Gokul Java chart library suggestion for web application? Java Basics - Anfänger-Themen 2
D wie kann ich gcc aus einer .java datei heraus aufrufen? Java Basics - Anfänger-Themen 2
S Text Formatierung in Java Java Basics - Anfänger-Themen 2
B Erste Schritte yaml parsen in Java Java Basics - Anfänger-Themen 19
C Methoden Umlaute in Java Java Basics - Anfänger-Themen 18
W Java-PRogramm liest als EXE-File Nicht USB, jedoch aus NetBeans Java Basics - Anfänger-Themen 45
W Methoden java map ersatz für c++map Java Basics - Anfänger-Themen 3
M Erste Schritte Java Primzahltester Java Basics - Anfänger-Themen 4
A csv Reader für Java? Java Basics - Anfänger-Themen 27
K Java - Enums Java Basics - Anfänger-Themen 30
tomzen Java Unterstützung für exel dateien installieren. Java Basics - Anfänger-Themen 2
Rookar java.lang.NoClassDefFoundError: org/json/JSONException Java Basics - Anfänger-Themen 2
Rookar Mit Button andere java öffnen Java Basics - Anfänger-Themen 4
F Java Object to Hashmap ? Java Basics - Anfänger-Themen 6
I Backend in Java und Ansicht von Dateien in statische HTML Seiten? Java Basics - Anfänger-Themen 15
R Input/Output Verwendung des Euro-Zeichens in Java Java Basics - Anfänger-Themen 7
I Push Nachrichten von JAVA EE App an Mobile App Java Basics - Anfänger-Themen 3
H .java Dateien in Eclipse einbinden und ausführen Java Basics - Anfänger-Themen 1
onlyxlia Schlüsselworte Was meint man mit "einen Typ" in Java erstellen? Java Basics - Anfänger-Themen 2
O Java Kara geschweifte Klammern Java Basics - Anfänger-Themen 2
G Mausrad logitech kann links und rechts klick wie in java abragen. Java Basics - Anfänger-Themen 15
XWing Java Klssenproblem Java Basics - Anfänger-Themen 4
R Umgebungsvariable java -cp gibt immer Java-Hilfe... Java Basics - Anfänger-Themen 3
farbenlos Csv Datei in Java einlesen Java Basics - Anfänger-Themen 18
F TableModelListener: java.lang.ArrayIndexOutOfBoundsException: 132 Java Basics - Anfänger-Themen 3
G Java 8 - Support-Ende Java Basics - Anfänger-Themen 7
T Java Weihnachtsbaum + Rahmen Java Basics - Anfänger-Themen 1
N Will mit Java anfangen Java Basics - Anfänger-Themen 13
Ü Java Array - Buchstaben als Zahlen ausgeben Java Basics - Anfänger-Themen 22
M Java Iterator Verständnisfrage Java Basics - Anfänger-Themen 6
M Java Mail Programm Java Basics - Anfänger-Themen 4
Sniper1000 Java 391 für Windows Java Basics - Anfänger-Themen 37
G Java long- in int-Variable umwandeln Java Basics - Anfänger-Themen 6
JaZuDemNo Java im Studium Java Basics - Anfänger-Themen 7
E Java Programm zur anzeige, ob Winter- oder Sommerzeit herrscht Java Basics - Anfänger-Themen 62
I QR code in Java selber generieren Java Basics - Anfänger-Themen 5
V Java-Ausnahmebehandlung: Behandlung geprüfter Ausnahmen Java Basics - Anfänger-Themen 1
krgewb Java Streams Java Basics - Anfänger-Themen 10
A Überwältigt von der komplexen Java Welt Java Basics - Anfänger-Themen 29
O Mehrfachvererbung auf Spezifikations- und Implementierungsebene in Java. Interfaces Java Basics - Anfänger-Themen 19
John_Sace Homogene Realisierung von Generics in Java ? Java Basics - Anfänger-Themen 19
P Meldung aus Java-Klasse in Thread an aufrufende Klasse Java Basics - Anfänger-Themen 1
R mit Java API arbeiten Java Basics - Anfänger-Themen 9
P JDK installieren Probleme bei der Java-Installation Java Basics - Anfänger-Themen 8
S Java: Wie sortiere ich eine ArrayList benutzerdefinierter Objekte nach einem bestimmten Attribut? Java Basics - Anfänger-Themen 2
Timo12345 JNLP File mit Java öffnen Java Basics - Anfänger-Themen 2
S Video Editierung mit Java.._ Java Basics - Anfänger-Themen 2
F Einstelungen in Java - CursorBlinkRate Java Basics - Anfänger-Themen 10
A PHP $_POST["name"] in Java Java Basics - Anfänger-Themen 3
vivansai21 Is there a oneliner to create a SortedSet filled with one or multiple elements in Java? Java Basics - Anfänger-Themen 9
Athro-Hiro Weißes Bild in Java erstellen Java Basics - Anfänger-Themen 3
Arjunreddy Can someone please tell me how to use a debugger in BlueJ(a Java environment) Java Basics - Anfänger-Themen 1
M Java assoziationen (UML) Java Basics - Anfänger-Themen 8
H Excel-Tabellen mit Java erstellen Java Basics - Anfänger-Themen 4

Ähnliche Java Themen

Neue Themen


Oben