Advertisement
Guest User

Untitled

a guest
Dec 7th, 2018
154
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.40 KB | None | 0 0
  1. package SQL_Project;
  2.  
  3. import java.sql.Connection;
  4. import java.sql.DriverManager;
  5. import java.sql.PreparedStatement;
  6. import java.sql.ResultSet;
  7. import java.sql.SQLException;
  8.  
  9.  
  10. public class Utilisateur {
  11. public static java.util.Scanner scanner = new java.util.Scanner(System.in);
  12.  
  13. private String url = "jdbc:postgresql://localhost:5432/projet"; // LOCAL
  14. //private String url="jdbc:postgresql://172.24.2.6:5432/gcurato16"; // ECOLE
  15.  
  16. private PreparedStatement psAjoutUtilisateur;
  17. private PreparedStatement psAuthentification;
  18. private PreparedStatement psAjoutQuestion;
  19. private PreparedStatement psAjoutReponse;
  20. private PreparedStatement psAjoutVote;
  21. private PreparedStatement psAjoutTagQuestion;
  22. private Connection conn=null;
  23.  
  24.  
  25. public Utilisateur() {
  26.  
  27. // test driver
  28. try {
  29. Class.forName("org.postgresql.Driver");
  30.  
  31. } catch (ClassNotFoundException e) {
  32. System.out.println("Driver PostgreSQL manquant !");
  33. System.exit(1);
  34. }
  35.  
  36.  
  37. // test connection
  38. try {
  39. conn = DriverManager.getConnection(url, "postgres", "gabygab11");
  40.  
  41. } catch (SQLException e) {
  42. System.out.println("Impossible de joindre le serveur");
  43. System.exit(1);
  44. }
  45. try {
  46. psAjoutUtilisateur = conn.prepareStatement("SELECT projet.ajouterUtilisateur(?,?,?);");
  47. psAjoutQuestion = conn.prepareStatement("SELECT projet.ajouterQuestion(?,?,?);");
  48. psAjoutReponse = conn.prepareStatement("SELECT projet.ajouterReponse(?,?,?);");
  49. psAjoutVote = conn.prepareStatement("SELECT projet.ajouterVotes(?,?,?);");
  50. psAjoutTagQuestion = conn.prepareStatement("SELECT projet.ajouterTag_question(?,?)");
  51. psAuthentification = conn.prepareStatement("SELECT * from projet.Utilisateurs WHERE NOT desactive AND nom_utilisateur = ? AND mot_de_passe = ?");
  52. }catch (SQLException se){
  53. System.out.println("Error, "+se.getMessage());
  54. System.exit(1);
  55. }
  56.  
  57. }
  58.  
  59. // Inscription phase
  60. private int inscriptionUtilisateur() {
  61.  
  62. try {
  63. System.out.println("Veuillez trouver un nom d'utilisateur");
  64. String nom_utilisateur = scanner.nextLine();
  65. System.out.println("Veuillez entrer votre email,");
  66. String email = scanner.nextLine();
  67. System.out.println("votre mot de passe,");
  68. String mot_de_passe = scanner.nextLine();
  69. psAjoutUtilisateur.setString(1,nom_utilisateur);
  70. psAjoutUtilisateur.setString(2,email);
  71. psAjoutUtilisateur.setString(3,mot_de_passe);
  72. ResultSet rs = psAjoutUtilisateur.executeQuery();
  73. while(rs.next()){
  74. System.out.println("Inscription bien effectuée");
  75. System.out.println("Vous êtes maintenant connecté");
  76. return rs.getInt(1);
  77. }
  78. }catch (SQLException se){
  79. System.out.println("Error, "+se.getMessage());
  80. return -1;
  81. }
  82. return -1;
  83. }
  84.  
  85. // authentification phase
  86. private int authentification() {
  87. System.out.println("Bonjour, veuillez-vous identifier svp:");
  88. System.out.println("Nom utilisateur:");
  89. String s = scanner.nextLine();
  90. System.out.println("Mot de Passe:");
  91. String s2 = scanner.nextLine();
  92. int num_user = authentification(conn, s, s2);
  93. if (num_user == -1){
  94. System.out.println("Votre nom d'utilisateur/mot de passe est incorrect ou votre compte est désactivé ");
  95. return -1;
  96. }else {
  97. System.out.println("Vous êtes connecté !");
  98. return num_user;
  99. }
  100. }
  101. /* authentification methode */
  102.  
  103. /**
  104. * @POST: return a boolean depending on the authentification's success
  105. * @param connection
  106. * @param nom_utilisateur
  107. * @param mdp
  108. */
  109.  
  110. public int authentification(Connection connection, String nom_utilisateur, String mdp){
  111. try {
  112. psAuthentification.setString(1, nom_utilisateur);
  113. psAuthentification.setString(2, mdp);
  114. try (ResultSet rs = psAuthentification.executeQuery()) {
  115.  
  116. while (rs.next()){
  117. if (rs.getString(4).equals(mdp) && rs.getString(2).equals(nom_utilisateur))
  118. return rs.getInt(1);
  119. }
  120. } catch (SQLException se) {
  121. return -1;
  122. }
  123. return -1;
  124. } catch (SQLException e) {
  125. // TODO Auto-generated catch block
  126. e.printStackTrace();
  127. return -1;
  128. }
  129. }
  130.  
  131. // AjouterQuestion
  132. public int ajouterQuestion(int numero_utilisateur){
  133. try {
  134. System.out.println("Veuillez inserer le titre de votre question");
  135. String titre = scanner.nextLine();
  136. System.out.println("Veuillez ecrire le contenu de votre question");
  137. String contenu =scanner.nextLine();
  138. psAjoutQuestion.setString(1, titre);
  139. psAjoutQuestion.setString(2, contenu);
  140. psAjoutQuestion.setInt(3, numero_utilisateur);
  141. ResultSet rs = psAjoutQuestion.executeQuery();
  142. while(rs.next()) {
  143. System.out.println("La question a été ajoutée !");
  144. System.out.println("Souhaitez-vous y ajouter un tag ? Si oui ecrivez bonjour");
  145. String ajoutTag = scanner.nextLine();
  146. if(ajoutTag.equals("bonjour")) {
  147. ajouterTagQuestion(rs.getInt(1));
  148. }
  149. return rs.getInt(1);
  150. }
  151. }catch (SQLException se){
  152. se.printStackTrace();
  153. System.out.println("Erreur, "+se.getMessage());
  154. }
  155. return -1;
  156. }
  157.  
  158. public void ajouterTagQuestion(int numero_question) {
  159. try {
  160. System.out.println("Veuillez écrire l'ID d'un tag à ajouter à la question : ");
  161. int id_tag = Integer.parseInt(scanner.nextLine());
  162. psAjoutTagQuestion.setInt(id_tag, numero_question);
  163. ResultSet rs = psAjoutTagQuestion.executeQuery();
  164. while(rs.next()) {
  165. System.out.println("Le tag a bien été ajouté !");
  166. }
  167. }catch(SQLException se) {
  168. se.printStackTrace();
  169. System.out.println("Erreur, " +se.getMessage());
  170. }
  171. }
  172.  
  173.  
  174. //ajouterReponse BESOIN AFFICHER QUESTIONS AVANT
  175. public int ajouterReponse(int num_auteur, int num_question) {
  176. try {
  177. System.out.println("Veuillez entrer le contenu de votre réponse");
  178. String contenu = scanner.nextLine();
  179. psAjoutReponse.setString(1, contenu);
  180. psAjoutReponse.setInt(2, num_question);
  181. psAjoutReponse.setInt(3, num_auteur);
  182. ResultSet rs = psAjoutReponse.executeQuery();
  183. while(rs.next()) {
  184. return rs.getInt(1);
  185. }
  186. }catch(SQLException se) {
  187. System.out.println("Erreur, "+se.getMessage());
  188. }
  189. return -1;
  190. }
  191.  
  192.  
  193. public String ajouterVote(int num_utilisateur, int id_reponse){
  194. try{
  195. System.out.println("Veuillez écrire positif ou negatif");
  196. String type_vote = scanner.next();
  197. psAjoutVote.setString(1, type_vote);
  198. psAjoutVote.setInt(2, num_utilisateur);
  199. psAjoutVote.setInt(3, id_reponse);
  200. ResultSet rs = psAjoutVote.executeQuery();
  201. while(rs.next()){
  202. return rs.getString(1);
  203. }
  204. } catch(SQLException se) {
  205. System.out.println("Erreur, "+se.getMessage());
  206. }
  207. return "Ca n'a pas fonctionné";
  208. }
  209.  
  210.  
  211.  
  212. // fermer connection
  213. public void close() {
  214. try {
  215. conn.close();
  216. } catch (SQLException e) {
  217. e.printStackTrace();
  218. }
  219. }
  220.  
  221. public static void main(String[] args) {
  222. Utilisateur ut = new Utilisateur();
  223. int choisir;
  224. int NUM_UTILISATEUR = 0;
  225. int NUM_QUESTION_SELECTIONNE = 0;
  226. boolean CONNECTE = false;
  227. System.out.println("Bienvenu dans le menu de navigation de l'Utilisateur");
  228. System.out.println("Pour vous inscrire, tappez 1");
  229. System.out.println("Pour vous connecter, tappez 2");
  230. choisir = Integer.parseInt(scanner.nextLine());
  231. switch(choisir){
  232. case 1:
  233. NUM_UTILISATEUR = ut.inscriptionUtilisateur();
  234. break;
  235. case 2 :
  236. NUM_UTILISATEUR = ut.authentification();
  237. break;
  238. }
  239. System.out.println("Pour ajouter une question, tappez 3");
  240. System.out.println("Pour ajouter une reponse, tappez 4");
  241. System.out.println("Pour voter, tapper 5");
  242. System.out.println("Pour ajouter un tag, tapper 6");
  243. System.out.println("Pour vous déconnecter, tapper 7");
  244. choisir = Integer.parseInt(scanner.nextLine());
  245. switch(choisir){
  246. case 3:
  247. NUM_QUESTION_SELECTIONNE = ut.ajouterQuestion(NUM_UTILISATEUR);
  248. case 4 :
  249. if(NUM_QUESTION_SELECTIONNE == 0) {
  250. System.out.println("Veuillez introduire un numéro de question : ");
  251. NUM_QUESTION_SELECTIONNE = Integer.parseInt(scanner.nextLine());
  252. }
  253. ut.ajouterReponse(NUM_UTILISATEUR, NUM_QUESTION_SELECTIONNE);
  254. case 5 :
  255.  
  256. case 6 :
  257.  
  258. case 7 :
  259. ut.close();
  260. break;
  261.  
  262. }
  263. }
  264. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement