while(rs.next){         //rs有多个记录
 stmt.execute(sql);   //我只写出程序结构,连接使用stmt会出错吗??
}
这样的写法是不正确的,你应该把
 stmt.execute(sql);   //我只写出程序结构,连接使用stmt会出错吗??
写到while循环外面。

解决方案 »

  1.   

    这个结构我不知道怎样改,请高手指点while(rs.next){ 
      bookid = rs.getString("bookid").trim();    
       sql = "update bookinfo set nownum = nownum - "+ m +" where bookid='"+bookid+"' ";
       stmt.execute(sql);   //我只写出程序结构,连接使用stmt会出错吗??
    }为什么这种结构会出错,上面的大哥,你说应该怎样改,谢谢
      

  2.   

    参考下我的代码:DataSource ds = (DataSource)ctx.lookup(jndi_name); Connection conn = ds.getConnection();
    try { 
    PreparedStatement psPreparedStatement=conn.prepareStatement(select_user_sql); 
    ResultSet resultSet = psPreparedStatement.executeQuery(); 
    while(resultSet.next()){ 
      //System.out.println("s");  
      out.println(resultSet.getString("CID"));
      out.print(resultSet.getString("username"));
      out.print(resultSet.getString("password"));
      out.println();

    }catch(SQLException e) { 
    e.printStackTrace(); 
    }finally { 
    conn.close(); 
    }
      

  3.   

    上面的大哥理解错了我的意思,我指的是这种程序结构的错误
    while(rs.next){         //rs有多个记录
     sql=.....;    //这是可变的语句,也没有语法错误
     stmt.execute(sql);   //我只写出程序结构,连接使用stmt会出错吗??
    }
      

  4.   

    你的思路就错啦,不能这样用的。
    或者连续写几个rs。象这样。。PreparedStatement psPreparedStatement=conn.prepareStatement(select_user_sql); 
    ResultSet resultSet = psPreparedStatement.executeQuery(); 
    while(resultSet.next()){ 
      //System.out.println("s");  
      out.println(resultSet.getString("CID"));
      out.print(resultSet.getString("username"));
      out.print(resultSet.getString("password"));
      out.println();

    PreparedStatement psPreparedStatement=conn.prepareStatement(select_user_sql); 
    ResultSet resultSet = psPreparedStatement.executeQuery(); 
    while(resultSet.next()){ 
      //System.out.println("s");  
      out.println(resultSet.getString("CID"));
      out.print(resultSet.getString("username"));
      out.print(resultSet.getString("password"));
      out.println();