这是我创建的 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/

10-10 00:46