java - 如何计算按钮的点击次数并保存在 MySql 数据库中?新 session 中的点击次数应添加到现有值中

标签 java jquery mysql hibernate jsp

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

相关文章:

javascript - 如何用PHP和JS自定义动态网站?

java - 给定每个项目的键,如何将项目列表映射到另一个存储桶列表?

javascript - 适用于 google chrome,但不适用于 firefox 和 IE

mysql - SELECT 中的 SELECT?单一报告中的不同数据

mysql - 为什么在对 SQL 查询 + 优化查询使用 LIMIT 时扫描类型从 ALL 更改为 RANGE

c# - 在从 jQuery ajax 检索的对象上使用 ForEach

java - awaitTermination 函数出现 IllegalMonitorStateException

java - Eclipse IConsole 插入符位置

java - 为什么插入排序不起作用?

javascript - 使用 Tinymce 创建自定义弹出窗口