sql更新语句一个字段中数量相加

wd47457 2011-02-15 08:10:29
在users表中对有userid,username,passwd,Email,jifen等字段,怎么对jifen字段进行增加积分,兑换积分啊?sql语句应该是怎么 写的?各位帮帮忙!
...全文
676 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
扁鵲東南飛 2011-02-16
  • 打赏
  • 举报
回复

ps=ct.prepareStatement("update users set users.jifen = users.jifen + Jifen where users.userid = userId ");

Jifen : 执行起来就有问题。
改为 "+Jifen+"
hzzduoduo 2011-02-16
  • 打赏
  • 举报
回复
同志们真是幸苦了啊
sevendawn 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 magong 的回复:]
引用 5 楼 wd47457 的回复:

ps=ct.prepareStatement("update users set users.jifen = users.jifen + Jifen where users.userid = userId ");

这句话肯定是有问题的,因为Jifen和userId都是Java变量,哪能放SQL中呢?
这样改

ps=ct.prepareSt……
[/Quote]

+1
magong 2011-02-16
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 wd47457 的回复:]

ps=ct.prepareStatement("update users set users.jifen = users.jifen + Jifen where users.userid = userId ");
[/Quote]
这句话肯定是有问题的,因为Jifen和userId都是Java变量,哪能放SQL中呢?
这样改

ps=ct.prepareStatement("update users set users.jifen = users.jifen + " + Jifen + " where users.userid = " + userId );
wd47457 2011-02-15
  • 打赏
  • 举报
回复
是的啊?可是public UserBean Upjifen(MyCartBO mcb,String userId,int Jifen) {


UserBean ub=new UserBean();
boolean b=false;
//MyCartBO mcb=new MyCartBO();
//ArrayList al=mcb.showMycart();


try{

//真的代码.
//int increment=mcb.getJifen();
ct=new ConnDB().getConn();
ps=ct.prepareStatement("update users set users.jifen = users.jifen + Jifen where users.userid = userId ");
//执行
int a=ps.executeUpdate();

if(a==1){
String sql="select * from users where userid=?";


ps=ct.prepareStatement(sql);

rs=ps.executeQuery();

if(rs.next()){

//将rs封装到userbean
ub.setUserid(rs.getLong(1));
ub.setUsername(rs.getString(2));
ub.setTruename(rs.getString(3));
ub.setPasswd(rs.getString(4));
ub.setEmail(rs.getString(5));
ub.setPhone(rs.getString(6));
ub.setAddress(rs.getString(7));
ub.setPostcode(rs.getString(8));
ub.setGrade(rs.getInt(9));

b=true;

}

}

}catch (Exception e1) {
e1.printStackTrace();
} finally {
this.close();
}
return ub;

}

设置了一个sevlet
//得到购物车
MyCartBO mcb=(MyCartBO)request.getSession().getAttribute("mycart");

//用户jifen
//int jifen=((UserBean)request.getSession().getAttribute("userInfo")).getJifen();

int Jifen=mcb.getJifen();
long userId=((UserBean)request.getSession().getAttribute("userInfo")).getUserid();
UserBean ub=ubb.Upjifen(mcb, userId+"",Jifen);
//int j=mcb.getJifen();
//用户jifen

if(ub!=null){

//添加成功


request.setAttribute("userInfo", ub);
request.getRequestDispatcher("userlogin_down.jsp").forward(request, response);
}else{
//添加失败
request.getRequestDispatcher("index.jsp").forward(request, response);
}

//request.getRequestDispatcher("userlogin_down.jsp").forward(request, response);

}



结果登录后的页面积分没显示
magong 2011-02-15
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 wd47457 的回复:]

我是在购物车里根据总价计算积分的!increment怎么设置啊?
[/Quote]
总价?
那就是多表连接查询了,
或者在Java程序中先算出increment值
wd47457 2011-02-15
  • 打赏
  • 举报
回复
我是在购物车里根据总价计算积分的!increment怎么设置啊?
magong 2011-02-15
  • 打赏
  • 举报
回复
也就是1楼这样的做法了,update命令。
increment最好是一个常量

兑换积分就是 - increment
sungoshawk 2011-02-15
  • 打赏
  • 举报
回复
something like this?

update users set users.jifen = users.jifen + increment where users.userid = ?

81,094

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧