Java Werte addieren => MySQL

  • Guten Tag,
    da ich nicht so wirklich weis was ich jetzt machen muss/kann/soll
    schreibe ich in der Hoffnung das es hier jemand weis...
    Jedesmal wenn ein Spieler meinen Server verlässt wird seine Spielzeit gespeichert, ich möchte es aber gern so haben das die Besuche alle zusammen gezählt werden.
    //Edit Also die Zeiten der Besuche.
    Bin noch relativ neu im Javabereich, wäre auch für Tutorials und Links zu Beispielen dankbar....
    @EventHandler
    public void onPlayerQuit(PlayerQuitEvent event) {
    try {
    String query = "SELECT * FROM `users` WHERE `uuid`='" + event.getPlayer().getUniqueId() + "'";
    ResultSet result = plugin.sqlLink.query(query);
    if (result.absolute(1)) {
    query = "UPDATE users SET lastname='" + event.getPlayer().getDisplayName() + "',playtime='" + event.getPlayer().getTicksLived() + "'WHERE uuid='" + event.getPlayer().getUniqueId() + "'";
    plugin.sqlLink.update(query);
    }
    } catch (SQLException ex) {
    System.err.println("MySQL Error: " + ex.getMessage());
    }
    }

  • Ich weiß ja nicht ob du für den count extra eine variabel angelegt hast, welche du ladest, inkrementierst und danach speicherst, was jedoch sinnlose wäre.
    Aber du kannst das ganze auch über MySQL machen.


    Syntax

    SQL
    UPDATE `users ` SET `visitcount` =  visitcount+1 WHERE uuid= ... ;
  • Wenn ich das nun so abändere:
    query = "UPDATE users SET lastname='" + event.getPlayer().getDisplayName() + "',playtime=' playtime+" + event.getPlayer().getTicksLived() + "'WHERE uuid='" + event.getPlayer().getUniqueId() + "'";
    Dann will MySQL nicht:
    MySQL Error: Incorrect integer value: ' playtime+66' for column 'playtime' at row 1