Hallo da draußen 
Ich bin kein Programmierer sondern 3D-Entwickler und in der Programmierung daher eher "oberflächlich" unterwegs sag ich mal. Für paar Ergänzungen auf meinem Server reicht es denke ich auf jedenfall aus, aber eine Sache macht mich zunehmend nervös und weil ich ja weiß, dass hier viele Programmierer ihr Unwesen treiben, wollte ich mal bisschen euren Rat erfragen.
Und zwar mache ich meine MySQL abfragen ganz normal in gewöhnlichen Methoden ohne irgendwelchen readlocks oder synchronizeds, geschweige denn irgendwelchen ausgelagerten Threads, wenn man das denn nun so macht :shrug:
Also hier ein Beispiel meiner einen MySQL Methode, die ich ganz normal im restlichen Code aufrufe. (Also ich habe eine ArrayList die die Generatoren runtime speichert und speichere dann regelmäßig ab, mit einem Scheduler. Und wenn der Spieler den Server verlässt, zb)
Meine Frage ist: Wäre es angebracht, hier irgendwie anders vorzugehen? Wenn ich in den Code von anderen Entwicklern schaue, finde ich oft locks oder threads oder so, sobalds um datenspeichern geht.
Da ich mir das ganze Programmieren nebenher beibringe und durch googlen hier jetzt eben nicht so recht schlau wurde, bzw nur Denkanstöße bekommen habe, würde ich mich über eure Tipp jeder Art freuen
gern auch, wenn ich ganz andere gravierende Fehler in dem Code gemacht habe.
Lg, CubBossa
Edit: Dass das isPlaced() abspeichern sinnlos ist, ist mir grad schon aufgefallen
Überhaupt, dass sie in der MySQL ist. Hab während dem coden umgedacht und es anders gelöst und da ist noch ein überbleibsel
Ich bin kein Programmierer sondern 3D-Entwickler und in der Programmierung daher eher "oberflächlich" unterwegs sag ich mal. Für paar Ergänzungen auf meinem Server reicht es denke ich auf jedenfall aus, aber eine Sache macht mich zunehmend nervös und weil ich ja weiß, dass hier viele Programmierer ihr Unwesen treiben, wollte ich mal bisschen euren Rat erfragen.
Und zwar mache ich meine MySQL abfragen ganz normal in gewöhnlichen Methoden ohne irgendwelchen readlocks oder synchronizeds, geschweige denn irgendwelchen ausgelagerten Threads, wenn man das denn nun so macht :shrug:
Also hier ein Beispiel meiner einen MySQL Methode, die ich ganz normal im restlichen Code aufrufe. (Also ich habe eine ArrayList die die Generatoren runtime speichert und speichere dann regelmäßig ab, mit einem Scheduler. Und wenn der Spieler den Server verlässt, zb)
Java:
public boolean saveGenerator(GeneratorObject g) {
Connection con = connect();
boolean saving = false;
if(con == null) return saving;
if(!g.isPlaced()) return saving;
try {
String statement = "UPDATE " + TABLE_NAME + " SET level = ?, isPlaced = ?, world = ?, x = ?, y = ?, z = ? WHERE (uuid = ?) AND (id = ?)";
PreparedStatement ps = con.prepareStatement(statement);
ps.setInt(1, g.getLevel());
ps.setInt(2, g.isPlaced() ? 1 : 0);
ps.setString(3, g.getFurnace().getLocation().getWorld().getName());
ps.setInt(4, g.getFurnace().getLocation().getBlockX());
ps.setInt(5, g.getFurnace().getLocation().getBlockY());
ps.setInt(6, g.getFurnace().getLocation().getBlockZ());
ps.setString(7, g.getOwnerUUID().toString());
ps.setInt(8, g.getId());
ps.executeUpdate();
ps.close();
saving = true;
} catch (Exception ex) {
ex.printStackTrace();
return false;
}
try {
con.close();
} catch (SQLException e) {
e.printStackTrace();
}
return saving;
}
Meine Frage ist: Wäre es angebracht, hier irgendwie anders vorzugehen? Wenn ich in den Code von anderen Entwicklern schaue, finde ich oft locks oder threads oder so, sobalds um datenspeichern geht.
Da ich mir das ganze Programmieren nebenher beibringe und durch googlen hier jetzt eben nicht so recht schlau wurde, bzw nur Denkanstöße bekommen habe, würde ich mich über eure Tipp jeder Art freuen
Lg, CubBossa
Edit: Dass das isPlaced() abspeichern sinnlos ist, ist mir grad schon aufgefallen
Zuletzt bearbeitet: