Restful webservice med java
Hej!
Jag behöver hjälp, tanken är att man ska hämta ApotekService?ort=
och därefter så ska den skriva ut resultaten beroende på vilken ort som söker efter, tex göteborg, utskriften av alla apotek görs i form av json som ni ser vid jsonwriter. Jag vill fortfarande att alla attribut ska skriva ut men att den ska sortera utifrån ort.
Jättetacksam för lite vägledning.
String ort = request.getParameter("ort");
String sqlOrt = "SELECT postort FROM postadress";
if (ort != null) {
out.println("NAMN: " + convertFromISO8859_1ToUTF_8(ort).toLowerCase());
sqlOrt = sqlOrt + " namn = '" + ort + "'";
Connection con = DriverManager.getConnection(Url, user, password);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery(sqlOrt);
while (rs.next()) {
apotek feed = new apotek();
feed.setOrt(rs.getString("postort"));
list.add(feed);
}
} else {
out.println("Det finns ingen sådan ort!");
}
Connection con = DriverManager.getConnection(Url, user, password);
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("SELECT a.namn, a.gatuadress, a.postnummer, k.kommunnamn, l.länsnamn, pa.postort, ä.ägarnamn\n"
+ "FROM apotek a\n"
+ "INNER JOIN kommun k ON k.länskod = a.länskod\n"
+ "AND k.kommunkod = a.kommunkod\n"
+ "INNER JOIN län l ON l.länskod = a.länskod\n"
+ "INNER JOIN postadress pa ON pa.postnr = a.postnummer\n"
+ "INNER JOIN ägare ä ON ä.ägarid = a.ägarid"
);
while (rs.next()) {
apotek feed = new apotek();
feed.setLan(rs.getString("länsnamn"));
feed.setNamn(rs.getString("namn"));
feed.setAdress(rs.getString("gatuadress"));
feed.setPostnummer(rs.getString("postnummer"));
feed.setKommun(rs.getString("kommunnamn"));
feed.setOrt(rs.getString("postort"));
feed.setForsaljningsstalle(rs.getString("ägarnamn"));
list.add(feed);
}
JSONWriter jsonWriter = new JSONWriter(out);
jsonWriter.object();
jsonWriter.key("apotek");
jsonWriter.array();
for (apotek currentApotek : list) {
jsonWriter.object();
jsonWriter.key("lan");
jsonWriter.value(currentApotek.getLan());
jsonWriter.key("kommun");
jsonWriter.value(currentApotek.getKommun());
jsonWriter.key("forsaljningsstalle");
jsonWriter.value(currentApotek.getForsaljningsstalle());
jsonWriter.key("adress");
jsonWriter.value(currentApotek.getAdress());
jsonWriter.key("postnummer");
jsonWriter.value(currentApotek.getPostnummer());
jsonWriter.key("ort");
jsonWriter.value(currentApotek.getOrt());
jsonWriter.key("namn");
jsonWriter.value(currentApotek.getNamn());
jsonWriter.endObject(); //stänger bookmarksposten
}
jsonWriter.endArray();
jsonWriter.endObject();
rs.close();
st.close();
out.close();
} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | SQLException ex) {
Logger.getLogger(ApotekService.class.getName()).log(Level.SEVERE, null, ex);
}
}