sql语句有问题吧,你先不用占位符试下可以不

解决方案 »

  1.   

    不用占位符就可以了
    但是
    String sql = "update tb_book set bookcount=?where id=?";
    PreparedStatement ps = conn.prepareStatement(sql);
    ps.setInt(1, bookCount); 
    ps.setInt(2, id); 
    ps.executeUpdate(); 
    是对的,可以执行出来,很郁闷的
      

  2.   

    ResultSet rs = ps.executeQuery(sql);
    改为
    ResultSet rs = ps.executeQuery();
    相信我,没错的!
      

  3.   

    恩恩,改了之后就正确了,但是为什么
     ps.setString(1,name); 
     ps.setString(2,author);
    的情况下,只能识别数字查询不能识别汉字的查询呢
     
      

  4.   

    你在之前 PreparedStatement ps= conn.prepareStatement(sql);就已指定sql,后面对sql中的占位符?赋值,接着应该是直接执行就行了。
    而ResultSet rs = ps.executeQuery(sql)指的是直接执行某的sql,这个时候你sql中的占位符?只是个字符而已
      

  5.   

    恩恩,改了之后就正确了,但是为什么
     ps.setString(1,name); 
     ps.setString(2,author);
    的情况下,只能识别数字查询不能识别汉字的查询呢
     那就看你汉字是否传值正确了。比如,后台汉字是否乱码.....
      

  6.   

    恩恩,改了之后就正确了,但是为什么
     ps.setString(1,name); 
     ps.setString(2,author);
    的情况下,只能识别数字查询不能识别汉字的查询呢
     那就看你汉字是否传值正确了。比如,后台汉字是否乱码.....
    你之前已经预编译了,所以最后执行的时候,不用再传入sql语句了,执行即可
      

  7.   

    恩恩,改了之后就正确了,但是为什么
     ps.setString(1,name); 
     ps.setString(2,author);
    的情况下,只能识别数字查询不能识别汉字的查询呢
     你填写的内容,传到后台一定是乱码,你可以打印确认一下。