JSONArray
을 사용하여 데이터베이스에서 데이터를 검색하려고합니다. 내 코드는 잘 작동하지만 데이터베이스의 마지막 항목 만 데이터베이스의 항목 수로 표시합니다.JSONArray를 사용하여 데이터베이스에서 항목을 검색하는 방법
내 코드는 다음과 같습니다
Gson gson = new Gson();
JsonObject myObj = new JsonObject();
JSONObject Obj = new JSONObject();
Connection conn = null;
try {
conn=prepareConnection();
} catch (ClassNotFoundException e1) {
System.out.println("Error --> " + displayErrorForWeb(e1));
e1.printStackTrace();
} catch (SQLException e1) {
System.out.println("Error --> " + displayErrorForWeb(e1));
e1.printStackTrace();
}
try {
JsonElement commentObj;
StringBuilder sb1=new StringBuilder(1024);
sb1.append("insert into ").append(uname.trim()).append("vcomments values(?,?,?,?)");
String sql1=sb1.toString();
PreparedStatement stmt1 = conn.prepareStatement(sql1);
stmt1.setString(1,uname);
stmt1.setString(2,message);
stmt1.setInt(3,itemId);
stmt1.setInt(4,albumId);
int i=stmt1.executeUpdate();
if(i!=1){
myObj.addProperty("success", false);
}
else {
myObj.addProperty("success", true);
}
PreparedStatement stmt = null;
String sql = null;
try {
StringBuilder sb=new StringBuilder(1024);
sb.append("select * from ").append(uname.trim()).append("vcomments").append(" where itemid=").append(itemId).append(" and albumid=").append(albumId);
sql=sb.toString();
stmt = conn.prepareStatement(sql);
ResultSet rs = stmt.executeQuery();
ArrayList<JSONObject> CommArray=new ArrayList<JSONObject>();
while(rs.next()){
Obj.put("uname",rs.getString("uname").trim());
Obj.put("comment",rs.getString("comments").trim());
CommArray.add(Obj);
}
JSONArray arrayObj=JSONArray.fromObject(CommArray);
commentObj=gson.toJsonTree(arrayObj);
myObj.add("commentInfo", commentObj);
out.println(myObj.toString());
rs.close();
stmt.close();
stmt = null;
conn.close();
conn = null;
}
catch(Exception e){System.out.println("Error --> " + displayErrorForWeb(e));}
응답을받은 :
는{"success":true,"commentInfo":[{"uname":"shyam","comment":"erxdg"},{"uname":"shyam","comment":"erxdg"},{"uname":"shyam","comment":"erxdg"},{"uname":"shyam","comment":"erxdg"}]}
데이터베이스는 두 개의 항목이 포함되어 있습니다. 마지막 항목은 erxdg입니다. 서블릿은 마지막 항목 만 응답을 보냈습니다.
사람이 당신은 각 결과 집합에 대한 새로운 JSONObject
을 만들 필요가 ........... 감사합니다 ..... 내가 그것을 해결하기 위해
검색어에 문제가있을 수 있습니다. 결과 집합에 erxdh와 다른 값이 포함되어 있는지 확인할 수 있습니까? 그것은 같은 요소를 반복적으로 반환하는 것으로 보입니다 – 75inchpianist
@ 75inchpianist 아니요, 내 결과 집합은 데이터베이스에있는 모든 값을 반환합니다 –