title: Getting java.sql.SQLException: Operation not allowed after ResultSet closed
body: <p>When I execute the following code, I get an exception. I think it is because I'm preparing in new statement with he same connection object. How should I rewrite this so that I can create a prepared statement AND get to use rs2? Do I have to create a new connection object even if the connection is to the same DB?</p>
  
  <pre><code>    try 
      {
          //Get some stuff
          String name = "";
          String sql = "SELECT `name` FROM `user` WHERE `id` = " + userId + " LIMIT 1;";
          ResultSet rs = statement.executeQuery(sql);
          if(rs.next())
          {
              name = rs.getString("name");
          }
  
          String sql2 = "SELECT `id` FROM  `profiles` WHERE `id` =" + profId + ";";
          ResultSet rs2 = statement.executeQuery(sql2);
          String updateSql = "INSERT INTO `blah`............"; 
          PreparedStatement pst = (PreparedStatement)connection.prepareStatement(updateSql);    
  
          while(rs2.next()) 
          { 
              int id = rs2.getInt("id");
              int stuff = getStuff(id);
  
              pst.setInt(1, stuff);
              pst.addBatch();
  
          }
  
          pst.executeBatch();
  
      } 
      catch (Exception e) 
      {
          e.printStackTrace();
      }
  
  private int getStuff(int id)
  {
  
      try
      {   
  
              String sql = "SELECT ......;";
              ResultSet rs = statement.executeQuery(sql);
  
              if(rs.next())
              {
                  return rs.getInt("something");
  
              }
              return -1;
      }//code continues
  </code></pre>