Advertisement
Guest User

Untitled

a guest
May 24th, 2019
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.82 KB | None | 0 0
  1. package nl.avans.database.dashboard;
  2.  
  3. import java.sql.PreparedStatement;
  4. import java.sql.ResultSet;
  5. import java.sql.SQLException;
  6. import java.util.HashMap;
  7.  
  8. import nl.avans.database.Database;
  9.  
  10. public class StatisticsDB {
  11.  
  12. public static int getTotalScore(String username) {
  13. String query = "SELECT MAX(score) AS max_score FROM player WHERE username = ?";
  14. try {
  15. PreparedStatement stmt = Database.connection.prepareStatement(query);
  16. stmt.setString(1, username);
  17. ResultSet result = stmt.executeQuery();
  18. while (result.next()) {
  19. return result.getInt("max_score");
  20.  
  21. }
  22. stmt.close();
  23. result.close();
  24. } catch (SQLException e) {
  25. e.printStackTrace();
  26.  
  27. }
  28. return 0;
  29. }
  30.  
  31. public static HashMap<String, Integer> getWinsAndLosses(String username) {
  32. HashMap<String, Integer> results = new HashMap<>();
  33. int win = 0;
  34. int loss = 0;
  35.  
  36. String query = "SELECT (SELECT IF(username=p.username,'Yes','No')FROM player WHERE game_idgame=p.game_idgame ORDER BY score DESC LIMIT 1)AS won FROM player AS p WHERE p.playstatus_playstatus='Uitgespeeld' AND p.username=?";
  37. try {
  38. PreparedStatement stmt = Database.connection.prepareStatement(query);
  39. stmt.setString(1, username);
  40. ResultSet result = stmt.executeQuery();
  41. while (result.next()) {
  42. if (result.getString("won").equalsIgnoreCase("yes")) {
  43. win++;
  44. } else {
  45. loss++;
  46. }
  47. }
  48. stmt.close();
  49. result.close();
  50. } catch (SQLException e) {
  51. e.printStackTrace();
  52. }
  53.  
  54. results.put("win", win);
  55. results.put("loss", loss);
  56.  
  57. return results;
  58. }
  59.  
  60. public static String getMostPlacedColor(String username) {
  61. String query = "SELECT diecolor FROM ( SELECT diecolor, player_idplayer, COUNT(diecolor) p\r\n" +
  62. "FROM playerframefield\r\n" +
  63. "GROUP BY player_idplayer, diecolor) s\r\n" +
  64. "WHERE player_idplayer IN (SELECT idplayer FROM player WHERE username = ?)\r\n" +
  65. "GROUP BY diecolor\r\n" +
  66. "ORDER BY SUM(p) DESC\r\n" +
  67. "LIMIT 1";
  68. try {
  69. PreparedStatement stmt = Database.connection.prepareStatement(query);
  70. stmt.setString(1, username);
  71. ResultSet result = stmt.executeQuery();
  72. while (result.next()) {
  73. return result.getString("diecolor");
  74.  
  75. }
  76.  
  77. stmt.close();
  78. result.close();
  79. } catch (SQLException e) {
  80. e.printStackTrace();
  81. }
  82. return null;
  83. }
  84. public static int getMostPlacedEye(String username) {
  85. String query = "SELECT eyes FROM (SELECT eyes, player_idplayer, COUNT(eyes) p FROM playerframefield JOIN gamedie\r\n" +
  86. "ON gamedie.dienumber = playerframefield.dienumber AND gamedie.diecolor = playerframefield.diecolor\r\n" +
  87. "GROUP BY player_idplayer, eyes) t\r\n" +
  88. "WHERE player_idplayer IN (SELECT idplayer FROM player WHERE username = ?)\r\n" +
  89. "GROUP BY eyes\r\n" +
  90. "ORDER BY SUM(p) DESC\r\n" +
  91. "LIMIT 1;";
  92. try {
  93. PreparedStatement stmt = Database.connection.prepareStatement(query);
  94. stmt.setString(1, username);
  95. ResultSet result = stmt.executeQuery();
  96. while(result.next()) {
  97. return result.getInt("eyes");
  98. }
  99. stmt.close();
  100. result.close();
  101. } catch (SQLException e) {
  102. e.printStackTrace();
  103. }
  104. return 0;
  105. }
  106. public static int getAmountOfOpponentsPlayed(String username) {
  107. String query = "SELECT COUNT(DISTINCT(username)) - 1 AS aantal_verschillende_tegenstanders\r\n" +
  108. "FROM player\r\n" +
  109. "WHERE game_idgame IN(SELECT game_idgame FROM player WHERE username = ?);";
  110. try {
  111. PreparedStatement stmt = Database.connection.prepareStatement(query);
  112. stmt.setString(1, username);
  113. ResultSet result = stmt.executeQuery();
  114. while(result.next()) {
  115. return result.getInt("aantal_verschillende_tegenstanders");
  116. }
  117. stmt.close();
  118. result.close();
  119. } catch (SQLException e) {
  120. e.printStackTrace();
  121.  
  122. }
  123.  
  124. return 0;
  125.  
  126. }
  127.  
  128.  
  129. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement