Créé dans le cadre du projet de fin d'année de la promo 2018 de CIR2 de l'ISEN Brest/Rennes, le Burger Quizz est une adaptation numérique du jeu télévisé éponyme, plus précisément d'une épreuve spécifique de ce jeu : le "Sel ou Poivre".

ConnexionBDD.java 6.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243
  1. package GestionBddDAO;
  2. import GestionBddDAO.GestionCategories;
  3. import GestionBddDAO.GestionQuestions;
  4. import GestionBddDAO.GestionReponses;
  5. import GestionErreurs.BDDException;
  6. import Modele.Categorie;
  7. import Modele.Question;
  8. import Modele.Reponses;
  9. import java.sql.Connection;
  10. import java.sql.DriverManager;
  11. import java.sql.SQLException;
  12. import java.util.ArrayList;
  13. /**
  14. * Classe DAO offrant une surcouche pour l'interaction avec la base de données.
  15. * @author joseph
  16. */
  17. public class ConnexionBDD
  18. {
  19. /**
  20. * Represente la connexion à la base de données.
  21. */
  22. private Connection connexionbdd;
  23. /**
  24. * Objet permettant la gestion des catégories dans la base de données.
  25. */
  26. private GestionCategories gestionCategories;
  27. /**
  28. * Objet permettant la gestion des réponses dans la base de données.
  29. */
  30. private GestionReponses gestionReponses;
  31. /**
  32. * Objet permettant la gestion des questions dans la base de données.
  33. */
  34. private GestionQuestions gestionQuestions;
  35. /**
  36. * Constructeur par defaut. Charge le driver mysql. Arret du programme si il n'est pas trouvé.
  37. */
  38. public ConnexionBDD()
  39. {
  40. try
  41. {
  42. Class.forName("com.mysql.jdbc.Driver");
  43. }
  44. catch(ClassNotFoundException e)
  45. {
  46. System.out.println(e.getMessage());
  47. System.exit(1);
  48. }
  49. }
  50. /**
  51. * Initie la connexion à la base de données, avec un time-out de 5 secondes.
  52. * @param nomBdd Le nom de la base.
  53. * @param port Le port du serveur.
  54. * @param ip L'adresse IP du serveur.
  55. * @param login Le login de l'utilisateur sur le serveur.
  56. * @param password Le mot de passe de l'utilisateur sur le serveur.
  57. * @return true si la connexion est effectué, false sinon.
  58. */
  59. public boolean connect(String nomBdd, long port, String ip, String login, String password)
  60. {
  61. try
  62. {
  63. String url = "jdbc:mysql://" + ip + ":" + port + "/" + nomBdd;
  64. DriverManager.setLoginTimeout(5);
  65. connexionbdd = DriverManager.getConnection(url, login, password);
  66. gestionCategories = new GestionCategories(connexionbdd);
  67. gestionReponses = new GestionReponses(connexionbdd);
  68. gestionQuestions = new GestionQuestions(connexionbdd);
  69. return true;
  70. }
  71. catch(SQLException e)
  72. {
  73. System.out.println("Erreur de conexion à la base de données: " + e.getMessage());
  74. return false;
  75. }
  76. }
  77. //Gestion catégorie
  78. /**
  79. * Permet d'obtenir la liste des catégorie depuis la base de données.
  80. * @return Un tableau d'objet catégorie.
  81. * @throws BDDException Si une erreur survient.
  82. */
  83. public ArrayList<Categorie> getListeCategorie() throws BDDException
  84. {
  85. try
  86. {
  87. gestionCategories.readCategorie();
  88. }
  89. catch(SQLException e)
  90. {
  91. throw new BDDException("Impossible de charger la liste des catégories. La bdd indique: " + e.getMessage());
  92. }
  93. return gestionCategories.getListCategories();
  94. }
  95. public void createCategorie(String categorieName) throws BDDException
  96. {
  97. try
  98. {
  99. gestionCategories.createCategorie(categorieName);
  100. }
  101. catch(SQLException e)
  102. {
  103. throw new BDDException("Impossible de créer une nouvelle catégorie. La bdd indique: " + e.getMessage());
  104. }
  105. }
  106. public void deleteCategorie(String categorieName) throws BDDException
  107. {
  108. try
  109. {
  110. gestionCategories.deleteCategorie(categorieName);
  111. }
  112. catch(SQLException e)
  113. {
  114. throw new BDDException("Impossible de suprimer la catégorie. La bdd indique: " + e.getMessage());
  115. }
  116. }
  117. public void renameCategorie(String oldCategorieName, String newCategorieName) throws BDDException
  118. {
  119. try
  120. {
  121. gestionCategories.updateCategorie(oldCategorieName, newCategorieName);
  122. }
  123. catch(SQLException e)
  124. {
  125. throw new BDDException("Impossible de renommer catégorie. La bdd indique: " + e.getMessage());
  126. }
  127. }
  128. //Gestion réponses
  129. public ArrayList<Reponses> getListeReponses(String catName) throws BDDException
  130. {
  131. try
  132. {
  133. gestionReponses.readReponses(catName);
  134. }
  135. catch(SQLException e)
  136. {
  137. throw new BDDException("Impossible de charger la liste des réponses. La bdd indique: " + e.getMessage());
  138. }
  139. return gestionReponses.getListReponses();
  140. }
  141. public void createReponses(String nomCategorie, String reponse1, String reponse2) throws BDDException
  142. {
  143. try
  144. {
  145. gestionReponses.createReponses(nomCategorie, reponse1, reponse2);
  146. }
  147. catch(SQLException e)
  148. {
  149. throw new BDDException("Impossible de créer une nouvelle réponse. La bdd indique: " + e.getMessage());
  150. }
  151. }
  152. public void deleteReponses(String reponse1, String reponse2) throws BDDException
  153. {
  154. try
  155. {
  156. gestionReponses.deleteReponses(reponse1, reponse2);
  157. }
  158. catch(SQLException e)
  159. {
  160. throw new BDDException("Impossible de suprimmer la réponse. La bdd indique: " + e.getMessage());
  161. }
  162. }
  163. public void modifyReponses(String categorie, String oldRep1, String oldRep2, String newRep1, String newRep2) throws BDDException
  164. {
  165. try
  166. {
  167. gestionReponses.updateReponses(categorie, oldRep1, oldRep2, newRep1, newRep2);
  168. }
  169. catch(SQLException e)
  170. {
  171. throw new BDDException("Impossible de modifier la réponse. La bdd indique: " + e.getMessage());
  172. }
  173. }
  174. //Gestion questions
  175. public ArrayList<Question> getListeQuestions(String reponse1, String reponse2) throws BDDException
  176. {
  177. try
  178. {
  179. gestionQuestions.readQuestions(reponse1, reponse2);
  180. }
  181. catch(SQLException e)
  182. {
  183. throw new BDDException("Impossible de charger la liste des questions. La bdd indique: " + e.getMessage());
  184. }
  185. return gestionQuestions.getListeQuestions();
  186. }
  187. public void createQuestion(String intitule, String reponse1, String reponse2, int num_reponse) throws BDDException
  188. {
  189. try
  190. {
  191. gestionQuestions.createQuestion(intitule, reponse1, reponse2, num_reponse);
  192. }
  193. catch(SQLException e)
  194. {
  195. throw new BDDException("Impossible de créer une nouvelle question. La bdd indique: " + e.getMessage());
  196. }
  197. }
  198. public void deleteQuestion(String intitule, String reponse1, String reponse2) throws BDDException
  199. {
  200. try
  201. {
  202. gestionQuestions.deleteQuestion(intitule, reponse1, reponse2);
  203. }
  204. catch(SQLException e)
  205. {
  206. throw new BDDException("Impossible de suprimer la question. La bdd indique: " + e.getMessage());
  207. }
  208. }
  209. public void modifyQuestion(String oldIntitule, String newIntitule, String reponse1, String reponse2, int newNum_reponse) throws BDDException
  210. {
  211. try
  212. {
  213. gestionQuestions.updateQuestion(oldIntitule, newIntitule, reponse1, reponse2, newNum_reponse);
  214. }
  215. catch(SQLException e)
  216. {
  217. throw new BDDException("Impossible de modifier la question. La bdd indique: " + e.getMessage());
  218. }
  219. }
  220. }