如何统计按钮的点击次数并保存到MySql数据库中?新会话中的点击次数应添加到现有值中。
这是我创建的 DAO:
public Poll updatePoll(int id){
Session s = factory.getCurrentSession();
Transaction t = s.beginTransaction();
Poll poll = (Poll) s.get(Poll.class, id);
Citizen citizen = (Citizen) s.get(Citizen.class, 1);
List<Poll> list = citizen.getPolledList();
boolean check = list.contains(poll);
if(!check){
Query q = s.createSQLQuery("update Poll set poll_count = poll_count + 1 where poll_id = id");
q.executeUpdate();
s.update(poll);
}else{
return poll;
}
s.close();
return poll;
}
这是创建的
Action
:
public String submitVote(){
ServletContext ctx = ServletActionContext.getServletContext();
ProjectDAO dao = (ProjectDAO)ctx.getAttribute("DAO");
Poll poll = dao.updatePoll(poll_id);
String flag = "error";
if (poll != null){
ServletActionContext.getRequest().getSession(true).setAttribute("POLL", poll);
flag = "voted";
}
return flag;
}
我知道我犯了严重的错误,我发布的代码可能完全是垃圾。但我希望,意图是明确的,因此,如果可能的话,请向我伸出援助之手。我的项目主要是 JSP (Struts 2)、jQuery 和 MySQL 5.1,所以请不要像我之前发现的那样建议 PHP 代码。
该框架用于包装用户的 servlet 内容,如果您想做类似的事情,您应该使用它的功能
ServletActionContext.getRequest().getSession(true)
但是
Map m = ActionContext.getContext().getSession();