i need to update some entry in my data base using jdo in java and i use google app engine
although i write the code correctly the update didn’t work with me ??
this is my code
@SuppressWarnings("serial")
public class GoUpdate extends HttpServlet {
public void doPost(HttpServletRequest req, HttpServletResponse resp)
throws IOException {
String msg = req.getParameter("msg");
String oldname = req.getParameter("nameold");
String name = req.getParameter("name");
String o = req.getParameter("salary");
int salary = Integer.parseInt(o);
String datestring = req.getParameter("date");
Date date = null;
try {
date = new SimpleDateFormat("dd-MM-yyyy").parse(datestring);// 10-10-2010
} catch (ParseException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
PersistenceManager pm = PMF.get().getPersistenceManager();
Query query = pm.newQuery(User.class, "name == nameParam");
query.declareParameters("String nameParam");
List<User> list = (List<User>) query.execute(oldname);
try {
for (User obj : list) {
{
obj.name = name;
obj.salary = salary;
obj.date = date;
req.setAttribute("msg1", msg);
pm.makePersistent(obj);
}
} finally {
pm.close();
resp.getWriter().println(">>>>>>>>>>");
}
RequestDispatcher view = req.getRequestDispatcher("view");
try {
view.forward(req, resp);
} catch (ServletException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
// resp.sendRedirect("view");
}
One way to update an object with JDO is to fetch the object, then modify it while the PersistenceManager that returned the object is still open. Changes are persisted when the PersistenceManager is closed. For example: