public class Database {
private static Database instance = new Database();
// folgende Zeile nur bei Version Hashtable
Hashtable<String, PreparedStatement> prepStatements = new Hashtable<String, PreparedStatement>();
// folgende Zeile nur bei Version globale Variablen
public static Database getInstance() {
return Database.instance;
}
private DatabaseConnection() {
try {
// handle any errors
System.
out.
println("SQLException: " + ex.
getMessage());
System.
out.
println("SQLState: " + ex.
getSQLState());
System.
out.
println("VendorError: " + ex.
getErrorCode());
}
// alle preparedstatements zur db senden und ebenso in der hashtabel speichern um darauf zugreifen zu können
try {
// folgende Zeile nur bei Version Hashtable
prepStatements.put("banUserPrep",conn.prepareStatement("INSERT INTO ..."));
// folgende Zeile nur bei Version globale Variablen
banUserPrep = conn.prepareStatement("INSERT INTO ...");
}
public boolean banUser
(int userid,
int duration,
String desc
) { // folgende Zeile nur bei Version Hashtable
// folgende Zeile nur bei Version globale Variablen
// get actual time in milliseconds
long banstart = java.
util.
Calendar.
getInstance().
getTimeInMillis();
long banend = banstart + duration;
int changedRows = 0;
try {
tempState.setInt(1, userid);
tempState.setLong(2, banstart);
tempState.setLong(3, banend);
tempState.setString(4, desc);
changedRows = tempState.executeUpdate();
if(changedRows == 1){
// es wurde eine zeile geaendert -> erfolg beim schreiben
return true;
} else{
// keine zeile geaendert
return false;
}
}
}