Hallo,
Zunächst mal sorry für den Titel, das war für ne Frage die ich vorher posten wollte, die sich aber selbst geklärt hat, habe den Titel geändert aber wird nicht auf den Haupttitel übernommen..
ich habe folgende Frage bezgl. JAVA:
Ich benutze MySQL und habe mir eine Funktion geschrieben, die datenbankresultate in ein String[] array schreibt:
Funktioniert echt gut, habe es gleich mit einer abfrage am anfang der main() funktion getestet:
Wiegesagt, funktioniert wie es soll!
Nun habe ich die funktion an einer anderen stelle im code verwendet (in einer userklasse), wo ich normalerweise auch immer meine MySQL-Funktionen benutze - ohne probleme. Nur mit dbarray() hauts irgendwie net hin. Bekomme immer diesen Fehler:
Hier nochmal die dbarray Funktion mit markierter fehlerzeile:
genauergesagt ist es die funktion "getString()" die hier probleme macht.
Warum auch immer!
Die abfrage, an der das Programm in der Userklasse scheitert, kann ich in der Main() Funktion ohne probleme ausführen, die Query ist also überall korrekt gewesen!
Woran kann das liegen
Zunächst mal sorry für den Titel, das war für ne Frage die ich vorher posten wollte, die sich aber selbst geklärt hat, habe den Titel geändert aber wird nicht auf den Haupttitel übernommen..
ich habe folgende Frage bezgl. JAVA:
Ich benutze MySQL und habe mir eine Funktion geschrieben, die datenbankresultate in ein String[] array schreibt:
Code:
public String[] dbArray(String field, String query) {
ResultSet result;
try {
result = stmt.executeQuery(query);
result.last();
String[] results = new String[result.getRow()];
result.first();
do {
results[result.getRow() - 1] = result.getString(field);
} while (result.next());
return results;
}
catch (SQLException sqle) {
System.out.println("MySQL Error!");
System.out.println("Query: " + query);
System.out.println("Error-Information:");
System.err.println(sqle);
}
catch (Exception e) {
e.printStackTrace();
}
return new String[0];
}
Code:
String[] array = database.dbArray("id", "SELECT id FROM users WHERE receiveAdminMails = 1");
for (String s : array)
System.out.println(s);
Wiegesagt, funktioniert wie es soll!
Nun habe ich die funktion an einer anderen stelle im code verwendet (in einer userklasse), wo ich normalerweise auch immer meine MySQL-Funktionen benutze - ohne probleme. Nur mit dbarray() hauts irgendwie net hin. Bekomme immer diesen Fehler:
java.lang.NullPointerException
at com.mysql.jdbc.ResultSetImpl.buildIndexMapping(ResultSetImpl.java:744)
at com.mysql.jdbc.ResultSetImpl.findColumn(ResultSetImpl.java:1100)
at com.mysql.jdbc.ResultSetImpl.getString(ResultSetImpl.java:5531)
at MySQL.dbArray(MySQL.java:120)
at processData.run(ProcessData.java:349)
Hier nochmal die dbarray Funktion mit markierter fehlerzeile:
Code:
public String[] dbArray(String field, String query) {
ResultSet result;
try {
result = stmt.executeQuery(query);
result.last();
String[] results = new String[result.getRow()];
result.first();
do {
results[result.getRow() - 1] = result.getString(field);
} while (result.next());
return results;
}
catch (SQLException sqle) {
System.out.println("MySQL Error!");
System.out.println("Query: " + query);
System.out.println("Error-Information:");
System.err.println(sqle);
}
catch (Exception e) {
e.printStackTrace();
}
return new String[0];
}
Warum auch immer!
Die abfrage, an der das Programm in der Userklasse scheitert, kann ich in der Main() Funktion ohne probleme ausführen, die Query ist also überall korrekt gewesen!
Woran kann das liegen
Zuletzt bearbeitet: