2016-06-19 5 views
0

Ich benutze die Postgres-Datenbank und meine tatsächlichen Abfragen werden jetzt im JSON-Format zurückgegeben und ich weiß nicht, wie ich das auf dem Bildschirm anzeigen soll. Zum Beispiel, bevor ich tun würde, um diesenJava JDBC Wie kann ich Ergebnisse anzeigen, die bereits im JSON-Format sind

org.json.JSONObject jo = null; 
    org.json.JSONArray ja = new org.json.JSONArray(); 

String myquery = "select DISTINCT ON(city,state)latitudes,longitudes,thirtylatmin,thirtylatmax,thirtylonmin,thirtylonmax,city,state from zips where city ilike 'Orl%' order by city,state,ziptype asc limit 10"; 
      conn = db.getConnection(); 


      ps = conn.prepareStatement(myquery); 
      rs = ps.executeQuery(); 

      while (rs.next()) { 
       jo = new org.json.JSONObject(); 
       jo.put("city", rs.getString("city")); 
       jo.put("state", rs.getString("state").trim()); 
       jo.put("latitudes", rs.getFloat("latitudes")); 
       jo.put("longitudes", rs.getFloat("longitudes")); 

       jo.put("thirtylatmin", rs.getFloat("thirtylatmin")); 

       jo.put("thirtylatmax", rs.getFloat("thirtylatmax")); 
       jo.put("thirtylonmin", rs.getFloat("thirtylonmin")); 
       jo.put("thirtylonmax", rs.getFloat("thirtylonmax")); 
       ja.put(jo); 
      } 
      org.json.JSONObject mainObj = new org.json.JSONObject(); 
      mainObj.put("location_update", ja); 


      String total = mainObj.toString(); 

      if (ps != null) { 
       ps.close(); 
      } 
      conn.close(); 
      return ok(total); 

Wie Sie mich tun würde, sehen meine Frage es dann zu Json-Format konvertieren und zeigen Sie es auf dem Browser. Mein Code ist nun wie folgt

String myquery = "select json_build_object('Profile', array_to_json(array_agg(t))) from (select DISTINCT ON(city,state)latitudes,longitudes,thirtylatmin,thirtylatmax,thirtylonmin,thirtylonmax,city,state from zips where city ilike 'Orl%' order by city,state,ziptype asc limit 10)t"; 

       conn = db.getConnection(); 


       ps = conn.prepareStatement(myquery); 

       rs = ps.executeQuery(); 
String results=null; 
       while (rs.next()) { 

       } 



       String total = results.toString(); 
       // System.err.println(total); 
       return ok(total); 

Meine Frage jetzt im JSON-Format gibt, so gibt es keine Notwendigkeit, Json zu konvertieren ist, wie kann ich die Ergebnisse dieser Abfrage erhalten an den Browser zurück. Ich bin neu in JDBC und meine andere Frage ist, dass ich weiß, dass JDBC blockiert, aber gibt es eine Grenze für die Anzahl der Anfragen pro Sekunde, die es verarbeiten kann? Angenommen, ich füge mehr CPUs hinzu?

+0

JDBC wird ein Objekt an den Aufrufer zurückgeben. Ich vermute, das ist ein Servlet oder Controller, kein Browser. Die Klasse, die für die Abfrage der Datenbank verantwortlich ist, sollte die HTTP-Antwort erstellen, den Typ auf JSON festlegen und sie an den Browser zurückgeben. Die HTML-Seite kann den JSON so darstellen, wie er es für richtig hält. – duffymo

+0

http://stackoverflow.com/questions/11874919/parsing-json-string-in-java –

Antwort

0

JDBC unterstützt den JSON-Datentyp nicht, sondern nur als String.

rs = ps.executeQuery(); 
String results=null; 
if (rs.next()) { 
    result = rs.getString(1); 
} 
String total = results.toString(); 
Verwandte Themen