|
@@ -1,15 +1,19 @@
|
|
|
package com.networknt.techempower.handler;
|
|
|
|
|
|
+import com.dslplatform.json.DslJson;
|
|
|
+import com.dslplatform.json.JsonWriter;
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper;
|
|
|
import com.networknt.config.Config;
|
|
|
import com.networknt.techempower.Helper;
|
|
|
import com.networknt.techempower.db.mysql.MysqlStartupHookProvider;
|
|
|
import com.networknt.techempower.db.postgres.PostgresStartupHookProvider;
|
|
|
+import com.networknt.techempower.model.World;
|
|
|
import io.undertow.server.HttpHandler;
|
|
|
import io.undertow.server.HttpServerExchange;
|
|
|
import io.undertow.util.Headers;
|
|
|
import io.undertow.util.HttpString;
|
|
|
|
|
|
+import java.nio.ByteBuffer;
|
|
|
import java.sql.Connection;
|
|
|
import java.sql.PreparedStatement;
|
|
|
import java.sql.ResultSet;
|
|
@@ -21,6 +25,8 @@ import javax.sql.DataSource;
|
|
|
|
|
|
public class DbPostgresqlGetHandler implements HttpHandler {
|
|
|
private final DataSource ds = PostgresStartupHookProvider.ds;
|
|
|
+ private DslJson<Object> dsl = new DslJson<>();
|
|
|
+ private JsonWriter writer = dsl.newWriter(25000);
|
|
|
|
|
|
@Override
|
|
|
public void handleRequest(HttpServerExchange exchange) throws Exception {
|
|
@@ -29,6 +35,7 @@ public class DbPostgresqlGetHandler implements HttpHandler {
|
|
|
return;
|
|
|
}
|
|
|
// 24682 59
|
|
|
+ World world;
|
|
|
exchange.getResponseHeaders().put(Headers.CONTENT_TYPE, "application/json");
|
|
|
try (final Connection connection = ds.getConnection()) {
|
|
|
try (PreparedStatement statement = connection.prepareStatement(
|
|
@@ -37,10 +44,12 @@ public class DbPostgresqlGetHandler implements HttpHandler {
|
|
|
statement.setInt(1, Helper.randomWorld());
|
|
|
try (ResultSet resultSet = statement.executeQuery()) {
|
|
|
resultSet.next();
|
|
|
- exchange.getResponseSender().send("{\"id\":" + resultSet.getInt("id") + ",\"randomNumber\":" + resultSet.getInt("randomNumber") + "}");
|
|
|
+ world = new World(resultSet.getInt("id"), resultSet.getInt("randomNumber"));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
-
|
|
|
+ writer.reset();
|
|
|
+ world.serialize(writer, true);
|
|
|
+ exchange.getResponseSender().send(ByteBuffer.wrap(writer.toByteArray()));
|
|
|
}
|
|
|
}
|