Guten Abend allerseits.
Ich habe zurzeit ein ziemlich nerviges Problem. Und zwar kommt nach circa 8 Stunden ein Fehler, wenn man zum Beispiel Werte setzt oder abfragt. Man kann wahrscheinlich die Dauer der vorhandenen Verbindung erhöhen. Aber selbst dann wird sie irgendwann schließen.
[CODE lang="java" title="MySQL Class"]@Getter
private Connection connection;
public void connect() {
try {
connection = DriverManager.getConnection("jdbc:mysql://" + HOST + ":" + PORT + "/" + DATABASE, USERNAME, PASSWORD);
} catch (Exception e) {
Main.log("§cThe connection to the database failed: " + e.getMessage());
}
}
public void createTable() {
connect();
update("CREATE TABLE IF NOT EXISTS SpeedCW (UUID CHAR(36), USERNAME VARCHAR(16), KILLS INT(10), DEATHS INT(10), PLAYED INT(10), WINS INT(10), BED INT(10), LOSES INT(10), WONGAMEWITHDESTORYBED INT(10), PRIMARY KEY(UUID))");
update("CREATE TABLE IF NOT EXISTS Achievements (UUID CHAR(36), USERNAME VARCHAR(16), FIRSTTIME INT(1), BUSINESSMAN INT(1), ELITE INT(1), FAIRPLAY INT(1), FIRSTBLOOD INT(1), OVERPOWERING INT(1), WINNER INT(1), SAGITTARIUS INT(1), BEAM INT(1), BOWKILL INT(1), CLUMSY INT(1), PRIMARY KEY(UUID))");
}
public void disconnect() {
if(isConnected()) {
try {
connection.close();
} catch (Exception e) {
}
}
}
private boolean isConnected() {
return connection != null;
}
public void update(String query) {
if(connection != null) {
try {
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.executeUpdate();
preparedStatement.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}[/CODE]
[CODE lang="java" title="Mit dieser Methode hol ich mir die Werte"]public Integer getKills(OfflinePlayer player) {
try {
PreparedStatement preparedStatement = Main.getInstance().getMySQL().getConnection().prepareStatement("SELECT * FROM SpeedCW WHERE UUID = ?");
preparedStatement.setString(1, player.getUniqueId().toString());
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
return resultSet.getInt("KILLS");
}
resultSet.close();
preparedStatement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return 0;
}[/CODE]
Mit freundlichen Grüßen
Ich habe zurzeit ein ziemlich nerviges Problem. Und zwar kommt nach circa 8 Stunden ein Fehler, wenn man zum Beispiel Werte setzt oder abfragt. Man kann wahrscheinlich die Dauer der vorhandenen Verbindung erhöhen. Aber selbst dann wird sie irgendwann schließen.
[CODE lang="java" title="MySQL Class"]@Getter
private Connection connection;
public void connect() {
try {
connection = DriverManager.getConnection("jdbc:mysql://" + HOST + ":" + PORT + "/" + DATABASE, USERNAME, PASSWORD);
} catch (Exception e) {
Main.log("§cThe connection to the database failed: " + e.getMessage());
}
}
public void createTable() {
connect();
update("CREATE TABLE IF NOT EXISTS SpeedCW (UUID CHAR(36), USERNAME VARCHAR(16), KILLS INT(10), DEATHS INT(10), PLAYED INT(10), WINS INT(10), BED INT(10), LOSES INT(10), WONGAMEWITHDESTORYBED INT(10), PRIMARY KEY(UUID))");
update("CREATE TABLE IF NOT EXISTS Achievements (UUID CHAR(36), USERNAME VARCHAR(16), FIRSTTIME INT(1), BUSINESSMAN INT(1), ELITE INT(1), FAIRPLAY INT(1), FIRSTBLOOD INT(1), OVERPOWERING INT(1), WINNER INT(1), SAGITTARIUS INT(1), BEAM INT(1), BOWKILL INT(1), CLUMSY INT(1), PRIMARY KEY(UUID))");
}
public void disconnect() {
if(isConnected()) {
try {
connection.close();
} catch (Exception e) {
}
}
}
private boolean isConnected() {
return connection != null;
}
public void update(String query) {
if(connection != null) {
try {
PreparedStatement preparedStatement = connection.prepareStatement(query);
preparedStatement.executeUpdate();
preparedStatement.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}[/CODE]
[CODE lang="java" title="Mit dieser Methode hol ich mir die Werte"]public Integer getKills(OfflinePlayer player) {
try {
PreparedStatement preparedStatement = Main.getInstance().getMySQL().getConnection().prepareStatement("SELECT * FROM SpeedCW WHERE UUID = ?");
preparedStatement.setString(1, player.getUniqueId().toString());
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
return resultSet.getInt("KILLS");
}
resultSet.close();
preparedStatement.close();
} catch (SQLException ex) {
ex.printStackTrace();
}
return 0;
}[/CODE]
Mit freundlichen Grüßen