当前位置: 代码迷 >> Java Web开发 >> 一个关于jsp+MySQL的编程有关问题,新手,救急
  详细解决方案

一个关于jsp+MySQL的编程有关问题,新手,救急

热度:5025   发布时间:2013-02-25 21:11:06.0
一个关于jsp+MySQL的编程问题,新手,救急...

下面两个语句为什么结果不是一样的?
String sql2="update book set mount=10000 where bookname='"+name+"'";
String sql2="update book set mount=num where bookname='"+name+"'";

num是int类型的数值,为什么传不进去。要怎么样处理?[size=16px][/size]
我需要实现用变量来传进数值到数据库中,有不明白的地方尽管问。

------解决方案--------------------------------------------------------
String sql2="update book set mount="+num+" where bookname='"+name+"'";
改成这样试一下...
------解决方案--------------------------------------------------------
如果你数据库的mount字段是int型的,
采用1楼的做法
------解决方案--------------------------------------------------------
大哥你这样怎么床的进去?String sql2="update book set mount="+num+" where bookname='"+name+"'";这样是对的"update book set mount=num where bookname='"这样双引号里面 都是字符串
------解决方案--------------------------------------------------------
楼上的分析很正确,你改了应该可以结果就一致了!
------解决方案--------------------------------------------------------
1楼正解 String sql2="update book set mount=num where bookname='"+name+"'";
如果这么写的, num会被当成一个整个String里的一部分,而不会认为他是变量 "+num+" 改成这样才能从num中取出值来
------解决方案--------------------------------------------------------
建议用占位符的方式,你这样会产生SQL注入漏洞
String sql = "update book set mount=? where bookname=?" ;
PreparedStatement ps = conn.prepareStatement(sql);
ps.setObject(1,num);
ps.setObject(2,name);
  相关解决方案