Advertisement
Guest User

Untitled

a guest
Oct 1st, 2016
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.80 KB | None | 0 0
  1. package returnitRest;
  2.  
  3. import com.fasterxml.jackson.core.JsonGenerator;
  4. import com.fasterxml.jackson.core.JsonProcessingException;
  5. import com.fasterxml.jackson.databind.JsonSerializer;
  6. import com.fasterxml.jackson.databind.SerializerProvider;
  7.  
  8. import java.io.IOException;
  9. import java.util.Map;
  10.  
  11. public class MapBarPlot extends JsonSerializer<Map<?, ?>> {
  12.  
  13. @Override
  14. public void serialize(Map<?, ?> value, JsonGenerator generator,
  15. SerializerProvider serializers) throws IOException,
  16. JsonProcessingException {
  17. generator.writeStartArray();
  18. for (Map.Entry<?, ?> entry : value.entrySet()){
  19. generator.writeStartObject();
  20. generator.writeObjectField("key", entry.getKey());
  21. generator.writeObjectField("value", entry.getValue());
  22. generator.writeEndObject();
  23. }
  24. generator.writeEndArray();
  25. }
  26. }
  27. =========================================================================================
  28. package returnitRest;
  29.  
  30. import com.fasterxml.jackson.databind.annotation.JsonSerialize;
  31.  
  32. import java.sql.DriverManager;
  33. import java.sql.PreparedStatement;
  34. import java.sql.ResultSet;
  35. import java.sql.SQLException;
  36. import java.time.LocalDateTime;
  37. import java.util.HashMap;
  38. import java.util.Map;
  39.  
  40. public class DbReport implements AutoCloseable {
  41.  
  42. private static final String JDBC_DRIVER = "com.mysql.jdbc.Driver";
  43. private static final String DB_URL = "jdbc:mysql://localhost/returnit";
  44.  
  45. private static final String USER = "returnit";
  46. private static final String PASS = "returnit";
  47.  
  48. private java.sql.Connection conn = null;
  49.  
  50. @JsonSerialize(using = MapBarPlot.class)
  51. private Map<String, Integer> recipes;
  52.  
  53. public DbReport() throws SQLException {
  54. try {
  55. Class.forName(JDBC_DRIVER);
  56. conn = DriverManager.getConnection(DB_URL, USER, PASS);
  57. } catch (ClassNotFoundException e) {
  58. e.printStackTrace();
  59. }
  60. }
  61.  
  62. @Override
  63. public void close() {
  64. try {
  65. this.conn.close();
  66. } catch (SQLException e) {
  67. e.printStackTrace();
  68. }
  69. }
  70.  
  71. public Map<String, Integer> ereturnsPerClient(LocalDateTime from , LocalDateTime to) throws SQLException {
  72.  
  73. Map<String, Integer> bpData = new HashMap<String, Integer>();
  74.  
  75. String sql = "SELECT firstName \"client\", COUNT(client) \"num_ereturns\" " +
  76. "FROM ereturn, user " +
  77. "WHERE client = idUser GROUP BY client";
  78.  
  79. PreparedStatement stmt = conn.prepareStatement(sql);
  80.  
  81. ResultSet rs = stmt.executeQuery();
  82.  
  83. while (rs.next()) {
  84. bpData.put(rs.getString("client"), rs.getInt("num_ereturns"));
  85. }
  86.  
  87. return bpData;
  88. }
  89. }
  90. ====================================================================================
  91. package returnitRest;
  92.  
  93. import javax.ws.rs.*;
  94. import javax.ws.rs.core.MediaType;
  95. import javax.ws.rs.core.Response;
  96. import java.sql.SQLException;
  97. import java.util.Map;
  98. import java.util.logging.Logger;
  99.  
  100. @Path("/report")
  101. public class ReportResource {
  102.  
  103. private static final Logger logger = Logger.getLogger(UserResource.class.getName());
  104.  
  105. @POST
  106. @Path("/numEreturnAllClients")
  107. @Produces(MediaType.APPLICATION_JSON)
  108. public Response numEreturnAllClients() throws SQLException {
  109.  
  110. logger.info("Getting number of ereturn per client for all clients (numEreturnAllClients) ... ");
  111.  
  112. try{
  113. DbReport q = new DbReport();
  114.  
  115. Map<String, Integer> balPlotData = q.ereturnsPerClient(null, null);
  116.  
  117. return Response.ok(balPlotData).build();
  118.  
  119. }catch (SQLException e){
  120.  
  121. return Response.serverError().entity(e).build();
  122. }
  123. }
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement