Advertisement
Guest User

jems

a guest
Jun 11th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.36 KB | None | 0 0
  1. package database;
  2.  
  3. import java.io.IOException;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import java.sql.PreparedStatement;
  7. import java.sql.ResultSet;
  8. import java.sql.SQLException;
  9. import java.util.ArrayList;
  10. import java.util.HashMap;
  11. import java.util.Map;
  12.  
  13. import javax.servlet.RequestDispatcher;
  14. import javax.servlet.ServletException;
  15. import javax.servlet.annotation.WebServlet;
  16. import javax.servlet.http.HttpServlet;
  17. import javax.servlet.http.HttpServletRequest;
  18. import javax.servlet.http.HttpServletResponse;
  19.  
  20. import check.Task;
  21.  
  22. /**
  23. * Servlet implementation class LoadProjectData
  24. */
  25. @WebServlet("/LoadProjectData")
  26. public class LoadProjectData extends HttpServlet {
  27. private static final long serialVersionUID = 1L;
  28.  
  29. /**
  30. * @see HttpServlet#HttpServlet()
  31. */
  32. public LoadProjectData() {
  33. super();
  34. // TODO Auto-generated constructor stub
  35. }
  36.  
  37. /* @see HttpServlet#service(HttpServletRequest request, HttpServletResponse
  38. * response)
  39. */
  40. protected void service(HttpServletRequest request, HttpServletResponse response)
  41. throws ServletException, IOException {
  42.  
  43. // Option for getting either a list of tasks associated with a single user
  44. // or the total tasks for the project
  45.  
  46. String projectJSP = "/project.jsp";
  47.  
  48. Connection conn = null;
  49. PreparedStatement preparedStatement = null;
  50. ResultSet resultSet = null;
  51.  
  52. try {
  53. // Needed to import MySQL driver code
  54. Class.forName("com.mysql.jdbc.Driver");
  55. conn = (Connection) DriverManager
  56. .getConnection("jdbc:mysql://localhost/Users?user=root&password=password!&useSSL=false");
  57.  
  58. int projectID = Integer.parseInt(request.getParameter("projectID"));
  59. int userID = (int) request.getSession().getAttribute(("userID"));
  60.  
  61. // Get a list of users in the project
  62. preparedStatement = conn
  63. .prepareStatement("SELECT DISTINCT up.userID, u.username FROM UserProject up JOIN User u WHERE up.projectID =? AND up.userID= u.userID");
  64. preparedStatement.setInt(1, projectID);
  65. resultSet = preparedStatement.executeQuery();
  66.  
  67. ArrayList<Integer> userIDs = new ArrayList<Integer>();
  68. ArrayList<String> userNames = new ArrayList<String>();
  69. int i = 0;
  70. while (resultSet.next()) {
  71. userIDs.add(resultSet.getInt("userID"));
  72. userNames.add(resultSet.getString("username"));
  73. System.out.println(userNames.get(i));
  74. i++;
  75. }
  76.  
  77. request.getSession().setAttribute("userNames", userNames);
  78. request.getSession().setAttribute("projectID", projectID);
  79.  
  80. Map<String, Map<String, Boolean>> userTaskMap = new HashMap<>();
  81.  
  82. for (int userIDNum : userIDs) {
  83. preparedStatement = conn.prepareStatement(
  84. "SELECT DISTINCT u.userID,t.completed, u.username, t.title, t.userID, t.projectID FROM Task t JOIN User u WHERE t.userID=? AND t.projectID = ?");
  85. preparedStatement.setInt(1, userIDNum);
  86. preparedStatement.setInt(2, projectID);
  87.  
  88. Map<String, Boolean> results = new HashMap<String, Boolean>();
  89. String userName =userNames.get(userIDNum-1);
  90. // Execute the query and get the result in a table
  91. resultSet = preparedStatement.executeQuery();
  92. if(!resultSet.next()) {
  93. results.put(null, null);
  94.  
  95. }
  96.  
  97. while (resultSet.next()) {
  98. //userName = resultSet.getString("username");
  99. //userNames.add(userName);
  100. String title = resultSet.getString("title");
  101. Boolean completed = resultSet.getBoolean("completed");
  102. results.put(title, completed);
  103. }
  104. userTaskMap.put(userName, results);
  105. }
  106. /*if(resultSet != null) {
  107. resultSet.close();
  108. }
  109. if(preparedStatement != null) {
  110. preparedStatement.close();
  111. }*/
  112. // Sets the attribute for the list of tasks for each user
  113. request.getSession().setAttribute("userTaskMap", userTaskMap);
  114.  
  115. System.out.println("in lpd line 97" + request.getSession().getAttribute("userTaskMap"));
  116. // Get all unassigned tasks in a specific project
  117. preparedStatement = conn.prepareStatement(
  118. "SELECT DISTINCT t.taskID, t.userID, t.taskID, t.title, t.projectID FROM Task t WHERE t.userID IS NULL AND t.projectID =?");
  119. preparedStatement.setInt(1, projectID);
  120.  
  121. System.out.println("jello");
  122.  
  123. ArrayList<Task> unassignedTasks = new ArrayList<Task>();
  124. // Execute the query and get the result in a table
  125. resultSet = preparedStatement.executeQuery();
  126.  
  127. while (resultSet.next()) {
  128. String title = resultSet.getString("title");
  129. System.out.println(title);
  130. int taskID = resultSet.getInt("taskID");
  131. System.out.println(taskID);
  132. Task t = new Task(title);
  133. t.setID(taskID);
  134. unassignedTasks.add(t);
  135. }
  136. System.out.println(unassignedTasks);
  137. // Send back a list of titles to the JSP
  138. request.getSession().setAttribute("unassignedTasks", unassignedTasks);
  139.  
  140.  
  141. } catch (SQLException sqle) {
  142. System.out.println("sqle: " + sqle.getMessage());
  143. } catch (ClassNotFoundException cnfe) {
  144. System.out.println("cnfe: " + cnfe.getMessage());
  145. } finally {
  146. try {
  147. if (resultSet != null) {
  148. resultSet.close();
  149. }
  150. if (preparedStatement != null) {
  151. preparedStatement.close();
  152. }
  153. if (conn != null) {
  154. conn.close();
  155. }
  156. } catch (SQLException sqle) {
  157. System.out.println(sqle.getMessage());
  158. }
  159. }
  160. RequestDispatcher dispatch = getServletContext().getRequestDispatcher(projectJSP);
  161. dispatch.forward(request, response);
  162. }
  163.  
  164. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement