Browse Source

Jooby R15P2 feedback: write direct JSON + rollback plaintext (#2952)

Edgar Espina 8 years ago
parent
commit
6feff2d08f
1 changed files with 14 additions and 18 deletions
  1. 14 18
      frameworks/Java/jooby/src/main/java/com/techempower/App.java

+ 14 - 18
frameworks/Java/jooby/src/main/java/com/techempower/App.java

@@ -54,9 +54,6 @@ public class App extends Jooby {
 
   static final String HELLO_WORLD = "Hello, World!";
 
-  static final ByteBuffer HELLO_WORLD_BUFFER = ByteBuffer
-      .wrap(HELLO_WORLD.getBytes(StandardCharsets.UTF_8));
-
   public static class Message {
     public final String message = HELLO_WORLD;
   }
@@ -70,23 +67,22 @@ public class App extends Jooby {
 
     /** JSON: */
     ObjectMapper mapper = new ObjectMapper();
-    use(new Jackson(mapper));
 
     /** Database: */
     use(new Jdbc());
 
     get("/plaintext", (req, rsp) -> {
-      rsp.send(result(HELLO_WORLD_BUFFER, plain));
-    }).renderer("byteBuffer");
+      rsp.send(result(HELLO_WORLD, plain));
+    }).renderer("text");
 
     get("/json", (req, rsp) -> {
-      rsp.send(result(new Message(), json));
-    }).renderer("json");
+      rsp.send(result(mapper.writeValueAsString(new Message()), json));
+    }).renderer("text");
 
     /** Single query: */
     get("/db", (req, rsp) -> {
-      rsp.send(result(findOne(rndId()), json));
-    }).renderer("json");
+      rsp.send(result(mapper.writeValueAsString(findOne(rndId())), json));
+    }).renderer("text");
 
     /** Multiple queries: */
     get("/queries", (req, rsp) -> {
@@ -97,14 +93,14 @@ public class App extends Jooby {
       try (Connection conn = ds.getConnection()) {
         for (int i = 0; i < count; i++) {
           int id = rndId(rnd);
-          try (final PreparedStatement query = conn.prepareStatement(SELECT_WORLD)) {
+          try (final PreparedStatement query = conn.prepareStatement(SELECT_WORLD, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) {
             result.add(findOne(query, id));
           }
         }
       }
 
-      rsp.send(result(result, json));
-    }).renderer("json");
+      rsp.send(result(mapper.writeValueAsString(result), json));
+    }).renderer("text");
 
     /** Updates: */
     get("/updates", (req, rsp) -> {
@@ -116,7 +112,7 @@ public class App extends Jooby {
         for (int i = 0; i < count; i++) {
           int id = rndId(rnd);
           int newRandomNumber = rndId(rnd);
-          try (final PreparedStatement query = conn.prepareStatement(SELECT_WORLD);
+          try (final PreparedStatement query = conn.prepareStatement(SELECT_WORLD, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY);
               final PreparedStatement update = conn.prepareStatement(UPDATE_WORLD)) {
             // find
             World world = findOne(query, id);
@@ -131,14 +127,14 @@ public class App extends Jooby {
         }
       }
 
-      rsp.send(result(result, json));
-    }).renderer("json");
+      rsp.send(result(mapper.writeValueAsString(result), json));
+    }).renderer("text");
 
     /** Fortunes: */
     get("/fortunes", (req, rsp) -> {
       List<Fortune> fortunes = new ArrayList<>();
       try (Connection connection = ds.getConnection()) {
-        try (PreparedStatement stt = connection.prepareStatement("select * from fortune")) {
+        try (PreparedStatement stt = connection.prepareStatement("select * from fortune", ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) {
           try (ResultSet rs = stt.executeQuery()) {
             while (rs.next()) {
               fortunes.add(new Fortune(rs.getInt("id"), rs.getString("message")));
@@ -158,7 +154,7 @@ public class App extends Jooby {
 
   private World findOne(int id) throws SQLException {
     try (Connection conn = ds.getConnection()) {
-      try (PreparedStatement query = conn.prepareStatement(SELECT_WORLD)) {
+      try (PreparedStatement query = conn.prepareStatement(SELECT_WORLD, ResultSet.TYPE_FORWARD_ONLY, ResultSet.CONCUR_READ_ONLY)) {
         return findOne(query, id);
       }
     }