为了账号安全,请及时绑定邮箱和手机立即绑定

ssh存储过程无法改变数据库数据

ssh存储过程无法改变数据库数据

慕娘9325324 2018-08-24 10:09:29
使用ssh存储过程实现购物车添加和商品列表的数据减少,程序执行成功但是数据库数据没变java调用public int add(int sid,int num,double total,int uid) {        try {            this.getSession().getNamedQuery("update").setParameter(0, sid).setParameter(1, num)             .setParameter(2, total).setParameter(3, uid);            return 1;         } catch (Exception e) {            // TODO: handle exception            e.printStackTrace();            return 0;         }     }调用mysql存储过程代码 <sql-query name="update" callable="true">         {call zcxg(?,?,?,?)}    </sql-query>mysql的存储过程详细代码create procedure `zcxg`(in sid int,in num int,in total double,in uid int)beginupdate shop as s set s.`number`=(s.`number`-`num`) where s.`id`=`sid`;insert into cart(number,sid,total,uid) values(`num`,`sid`,`total`,`uid`);commit;end
查看完整描述

1 回答

?
慕斯王

TA贡献1864条经验 获得超2个赞

  this.getSession().getNamedQuery("update").setParameter(0, sid).setParameter(1, num)
            .setParameter(2, total).setParameter(3, uid);

换成

    String procdure = "{call cl(?,?,?,?)}";
            CallableStatement cs = this.getHibernateTemplate().getSessionFactory().getCurrentSession().connection().prepareCall(procdure);
            cs.setInt(1, sid);
            cs.setInt(2, num);
            cs.setDouble(3, total);
            cs.setInt(4, uid);
            cs.execute();


查看完整回答
反对 回复 2018-09-12
  • 1 回答
  • 0 关注
  • 746 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信