这是我创建的 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();
关于java - 如何计算按钮的点击次数并保存在 MySql 数据库中?新 session 中的点击次数应添加到现有值中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/30016158/