1. public class Database {
  2. private static Database instance = new Database();
  3. private static Connection conn = null;
  4.  
  5. // folgende Zeile nur bei Version Hashtable
  6. Hashtable<String, PreparedStatement> prepStatements = new Hashtable<String, PreparedStatement>();
  7.  
  8. // folgende Zeile nur bei Version globale Variablen
  9. PreparedStatement banUserPrep;
  10.  
  11. public static Database getInstance() {
  12. return Database.instance;
  13. }
  14.  
  15. private DatabaseConnection() {
  16.  
  17.  
  18. String connURL = "";
  19. String username = "";
  20. String pass = "";
  21.  
  22. try {
  23. conn = DriverManager.getConnection(connURL, username, pass);
  24.  
  25. } catch (SQLException ex) {
  26. // handle any errors
  27. System.out.println("SQLException: " + ex.getMessage());
  28. System.out.println("SQLState: " + ex.getSQLState());
  29. System.out.println("VendorError: " + ex.getErrorCode());
  30. }
  31.  
  32. // alle preparedstatements zur db senden und ebenso in der hashtabel speichern um darauf zugreifen zu können
  33. try {
  34. // folgende Zeile nur bei Version Hashtable
  35. prepStatements.put("banUserPrep",conn.prepareStatement("INSERT INTO ..."));
  36.  
  37. // folgende Zeile nur bei Version globale Variablen
  38. banUserPrep = conn.prepareStatement("INSERT INTO ...");
  39.  
  40. } catch (SQLException e) {}
  41.  
  42. }
  43.  
  44. public boolean banUser(int userid, int duration, String desc) {
  45. // folgende Zeile nur bei Version Hashtable
  46. PreparedStatement tempState = prepStatements.get("banUserPrep");
  47.  
  48. // folgende Zeile nur bei Version globale Variablen
  49. PreparedStatement tempState = banUserPrep;
  50.  
  51. // get actual time in milliseconds
  52. long banstart = java.util.Calendar.getInstance().getTimeInMillis();
  53.  
  54. long banend = banstart + duration;
  55.  
  56. int changedRows = 0;
  57.  
  58. try {
  59. tempState.setInt(1, userid);
  60. tempState.setLong(2, banstart);
  61. tempState.setLong(3, banend);
  62. tempState.setString(4, desc);
  63.  
  64. changedRows = tempState.executeUpdate();
  65.  
  66. } catch (SQLException e) {}
  67.  
  68. if(changedRows == 1){
  69. // es wurde eine zeile geaendert -> erfolg beim schreiben
  70. return true;
  71. } else{
  72. // keine zeile geaendert
  73. return false;
  74. }
  75. }
  76. }