Hallo Zusammen =)
Ich versuche nun seit 2 Tagen ein Problem zu lösen, wo ich einfach nicht mehr mit weiter komme. Ich habe schon etliche Möglichkeiten ausprobiert, um das Problem selber zu lösen, doch ich komme einfach nicht weiter. Habe alles einige Male neu geschrieben um evtl. doch irgendwo ein Fehler zu entdecken doch ich schaffe es einfach nicht.
Und zwar möchte ich gerne in einer vorhandenen sqlite Datenbank eine Zeile hinzufügen.
Zuvor frage ich ab, ob der Wert bereits vorhanden ist, falls nicht soll der Wert geschrieben werden.
So sieht meine Funktion aus:
Und die getSQLConnection sieht so aus:
Wenn ich nun die Funktion AddNewPlayer aus meiner main.java raus aufrufe, läuft es bis zu dieser Zeile alles einwandfrei.
Hier bekomme ich nun in der Console eine Exception:
Leider war es das auch schon an Fehler. Zeile 114 ist wie oben geschrieben, die Zeile ps = conn.prepareStatement.
Ich weiß mir leider keinen Rat mehr und komme einfach nicht mehr weiter. Kann mir evtl. hier jemand weiter helfen?
p.s. Nicht über diese Zeilen wundern, wo einfach irgendwas in die Console gepostet wird. Das hab ich dafür gemacht, um zu schauen, bis wohin die Anwendung abgearbeitet wird.
Liebe Grüße
Xearox
Ich versuche nun seit 2 Tagen ein Problem zu lösen, wo ich einfach nicht mehr mit weiter komme. Ich habe schon etliche Möglichkeiten ausprobiert, um das Problem selber zu lösen, doch ich komme einfach nicht weiter. Habe alles einige Male neu geschrieben um evtl. doch irgendwo ein Fehler zu entdecken doch ich schaffe es einfach nicht.
Und zwar möchte ich gerne in einer vorhandenen sqlite Datenbank eine Zeile hinzufügen.
Zuvor frage ich ab, ob der Wert bereits vorhanden ist, falls nicht soll der Wert geschrieben werden.
So sieht meine Funktion aus:
Java:
public static void AddNewPlayer(String PlayerName){
Connection conn = null;
PreparedStatement ps = null;
if(FindPlayer(PlayerName)){
System.out.println("Player allready in the Database");
}else{
try{
conn = getSQLConnection();
ps = conn.prepareStatement("INSERT INTO " + TableName + " (PlayerName, PlayerDeath) VALUES(?,?)");
ps.setString(1, "'"+PlayerName+"'");
ps.setInt(2, 0);
ps.executeUpdate();
return;
} catch (SQLException e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
} finally {
try {
if (ps != null)
ps.close();
if (conn != null)
conn.close();
} catch (SQLException e){
System.err.println( e.getClass().getName() + ": " + e.getMessage() );
}
}
}
}
Und die getSQLConnection sieht so aus:
Java:
public static Connection getSQLConnection(){
//Connection connection = null;
try{
if(connection!=null&&connection.isClosed()){
return connection;
}
Class.forName("org.sqlite.JDBC");
connection = DriverManager.getConnection("jdbc:sqlite:"+DBPath+DBName);
System.out.println("Opened database successfully");
return connection;
}catch ( Exception e){
}
return null;
}
Wenn ich nun die Funktion AddNewPlayer aus meiner main.java raus aufrufe, läuft es bis zu dieser Zeile alles einwandfrei.
Java:
ps = conn.prepareStatement("INSERT INTO " + TableName + " (PlayerName, PlayerDeath) VALUES(?,?)");
Hier bekomme ich nun in der Console eine Exception:
Code:
[02:44:16 WARN]: java.lang.NullPointerException
[02:44:16 WARN]: at org.sqlite.PrepStmt.<init>(PrepStmt.java:42)
[02:44:16 WARN]: at org.sqlite.Conn.prepareStatement(Conn.java:404)
[02:44:16 WARN]: at org.sqlite.Conn.prepareStatement(Conn.java:399)
[02:44:16 WARN]: at org.sqlite.Conn.prepareStatement(Conn.java:383)
[02:44:16 WARN]: at de.xearox.tutorial.Database.AddNewPlayer(Database.java:114)
Leider war es das auch schon an Fehler. Zeile 114 ist wie oben geschrieben, die Zeile ps = conn.prepareStatement.
Ich weiß mir leider keinen Rat mehr und komme einfach nicht mehr weiter. Kann mir evtl. hier jemand weiter helfen?
p.s. Nicht über diese Zeilen wundern, wo einfach irgendwas in die Console gepostet wird. Das hab ich dafür gemacht, um zu schauen, bis wohin die Anwendung abgearbeitet wird.
Liebe Grüße
Xearox