下面两个语句为什么结果不是一样的?
String sql2="update book set mount=10000 where bookname='"+name+"'";
String sql2="update book set mount=num where bookname='"+name+"'";num是int类型的数值,为什么传不进去。要怎么样处理?
我需要实现用变量来传进数值到数据库中,有不明白的地方尽管问。

解决方案 »

  1.   

    String sql2="update book set mount="+num+" where bookname='"+name+"'";
    改成这样试一下...
      

  2.   

    如果你数据库的mount字段是int型的,
    采用1楼的做法
      

  3.   

    大哥你这样怎么床的进去?String sql2="update book set mount="+num+" where bookname='"+name+"'";这样是对的"update book set mount=num where bookname='"这样双引号里面 都是字符串
      

  4.   

    1楼正解 String sql2="update book set mount=num where bookname='"+name+"'";
    如果这么写的, num会被当成一个整个String里的一部分,而不会认为他是变量  "+num+" 改成这样才能从num中取出值来
      

  5.   

    建议用占位符的方式,你这样会产生SQL注入漏洞
    String sql = "update book set mount=? where bookname=?" ;
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setObject(1,num);
    ps.setObject(2,name);
      

  6.   

    昨晚搞掂了,谢谢各位。
    String sql2="update book set mount=num where bookname='"+name+"'";
    这样子ok。还有一位仁兄的建议没有试过,但是可能理解错我的意思了。