Hallo,
bin neu hier und das sind meine ersten "gehversuche" mit Java
Habe eine Klasse für Datenbankzugriffe geschrieben. Eine Methode dieser Klasse sollte die Verbindung liefern, liefert aber null:
Debug (Eclipse) zeigt, dass "datenbank" den Wert "null" hat und ich bekomme logischerweise eine NullPointerException
Methode "verbinde" zeigt keine Fehler. Compiler zeigt den Fehler in "getEinzel". Habe ich was übersehen?
bin neu hier und das sind meine ersten "gehversuche" mit Java
Habe eine Klasse für Datenbankzugriffe geschrieben. Eine Methode dieser Klasse sollte die Verbindung liefern, liefert aber null:
Code:
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
import java.util.Properties;
import java.sql.Statement;
import java.sql.ResultSet;
public class DerbyDB {
static final String Treiber = "org.apache.derby.jdbc.EmbeddedDriver";
static final String protokol="jdbc:derby:";
Properties userdaten=new Properties();
SprachDatei sprache=new SprachDatei();
public String getEinzel(String tabelle, String rgfeld, String suchfeld, String suchtext){
String resultat="";
String befehl="";
try{
Connection datenbank=verbinde();
Statement bsatz=datenbank.createStatement(); // Hier meldet Compiler eine NullPointerException, da "datenbank" den Wert "null" hat
befehl="SELECT "+rgfeld+" FROM "+tabelle+" WHERE "+suchfeld+"="+suchtext;
ResultSet dbrg=bsatz.executeQuery(befehl);
resultat=dbrg.getString(suchfeld);
dbrg.close();
bsatz.close();
datenbank.commit();
datenbank.close();
} catch (SQLException sqlex){
new FehlerFenster(sprache.uebersetze("SQLEXCEPTION"),sqlex.toString());
}
return resultat;
}
private Connection verbinde(){
Connection verbindung=null;
try{
Class.forName(Treiber).newInstance();
userdaten.put("user","benutzer");
userdaten.put("password","kennwort");
verbindung=DriverManager.getConnection(protokol+"FHNdata;create=true",userdaten);
verbindung.setAutoCommit(false);
} catch (SQLException sqlex){
new FehlerFenster(sprache.uebersetze("SQLEXCEPTION"),sqlex.toString());
} catch (ClassNotFoundException knfex){
new FehlerFenster(sprache.uebersetze("CLASS_NOT_FOUND_EXCEPTION"),knfex.toString());
} catch (InstantiationException inex){
new FehlerFenster(sprache.uebersetze("INSTANTIATION_EXCEPTION"),inex.toString());
} catch(IllegalAccessException iaex){
new FehlerFenster(sprache.uebersetze("ILLEGAL_ACCESS_EXCEPTION"),iaex.toString());
}
return verbindung;
}
}
Debug (Eclipse) zeigt, dass "datenbank" den Wert "null" hat und ich bekomme logischerweise eine NullPointerException
Methode "verbinde" zeigt keine Fehler. Compiler zeigt den Fehler in "getEinzel". Habe ich was übersehen?