HelloDbController.java 1017 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. package hello.controllers;
  2. import hello.dao.WorldDao;
  3. import hello.model.World;
  4. import java.util.Random;
  5. import java.util.concurrent.ThreadLocalRandom;
  6. import ninja.Result;
  7. import ninja.Results;
  8. import ninja.params.PathParam;
  9. import com.google.inject.Inject;
  10. import com.google.inject.Singleton;
  11. @Singleton
  12. public class HelloDbController {
  13. private static final int DB_ROWS = 10000;
  14. private final Random random = ThreadLocalRandom.current();
  15. @Inject
  16. WorldDao worldDao;
  17. public Result singleGet() {
  18. return Results.json().render(getRandomWorld());
  19. }
  20. public Result multiGet(@PathParam("queries") Integer queries) {
  21. if (queries == null || queries < 1) {
  22. queries = 1;
  23. }
  24. if (queries > 500) {
  25. queries = 500;
  26. }
  27. final World[] worlds = new World[queries];
  28. for (int i = 0; i < queries; i++) {
  29. worlds[i] = getRandomWorld();
  30. }
  31. return Results.json().render(worlds);
  32. }
  33. private World getRandomWorld() {
  34. return worldDao.get(random.nextInt(DB_ROWS) + 1);
  35. }
  36. }