Java Datenbankverbindung

scaraaaa

Grünschnabel
Hallo zusammen,

ich hoffe, ihr könnt mir weiterhelfen, bin inzwischen schon ziemlich verzweifelt.
Versuche eine Datenbankverbindung zu Access herzustellen, aber irgendwie will das nicht funktionieren.
Mein Code:
Java:
import java.sql.*;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.ResultSetMetaData;
import java.sql.Statement;
import java.util.ArrayList;
import java.sql.SQLException;

public class DBSpieler 
{
  static Connection con = null;
  static Statement statement;
  static ResultSet resultSet = null;
  static String sqlQuery;
  
  String mDB;
.
.
.
private void getConnection() throws Exception
  {
	try 
	{
	  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
	  
	mDB = "jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=H:\\Silke\\Fussball.mdb";
	
    con = DriverManager.getConnection(mDB,"","");
	
	statement = con.createStatement();
	
	}
	catch(ClassNotFoundException cnfe) {
        System.out.println("Treiber kann nicht geladen werden: "+ cnfe.getMessage());
        System.out.println(cnfe.getMessage());
    }
	catch(SQLException sqle) {
        System.out.println("Verbindung ist fehlgeschlagen: " + sqle.getMessage());
        System.out.println("Kein Server vorhanden!");
    }
	}
}
  private void executeQueryWithoutResultset(String query) throws Exception
  {
	  getConnection();
	  
	  statement.executeUpdate(query); -> Zeile 97
	  statement.close();
	  closeConnection();
  }

Folgenden Fehler erhalte ich:
java.lang.NullPointerException in Zeile 97

Ich freue mich über jede Hilfe :)

Viele Grüße
 
Bei Nullpointerexceptions funktioniert ganz gut, den Code mit statements wie
Code:
if (null == suspiciousObject){
System.err("omg null");
}
zu erweitern. Dabei finden sich die meisten Probleme.

Zur besseren Analyse am besten dann den kompletten code hier posten, incl. main-Methode und Aufruf, am schönsten in einer Klasse.

Falls die Methode getConnection ohne Fehlerausgaben durchläuft, sollte das statement objekt nicht null sein. Evtl ist der query string null.

sonstiges:
Code:
	private void getConnection() throws Exception

Die Methode kann laut deklaration exceptions werfen. Du fängst allerdings sämtliche exceptions. Entweder die exceptions einfach nicht catchen und sie über throws weiterleiten oder innerhalb des catch blocks rethrown. Dann bricht das Programm auch wie gewünscht ab, ohne nicht definierte Zustände für nachfolgende Aufrufe zu hinterlassen.

z.B.
Code:
catch (ClassNotFoundException cnfe) {
			System.out.println("Treiber kann nicht geladen werden: "					+ cnfe.getMessage());
			System.out.println(cnfe.getMessage());
			throw cnfe;
		}
 
Vielen Dank für die schnelle Antwort!
Inziwschen tut es, lag am PC bzw meinem Benutzer, da ich keine Recht beim Zugriff auf die Temp Datei hatte.
Auf nem anderen gehts jetzt.
Trotzdem vielen Dank! :)
 
Lass doch bitte das static an deinen Feldern weg. Das hat dort in deinem Fall nichts zu suchen.

In getConnection() solltest du nicht direkt ein Statement erstellen. In Java schreibt man im übrigen auch nur get... wenn auch etwas zurückgegeben wird. Entsprechend solltest du dein Connection-Objekt entwerder zurückgeben oder die Methode in createConnection umbenennen.

Das Statement erstellst du dann für die Abfrage über die Connection.

Eine NullPointerException sagt übrigens aus, dass das Objekt vor dem Punkt null ist. Sind also eigentlich sehr einfach zu verstehen.
 

Neue Beiträge

Zurück