Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/jsp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 返回零的列表迭代器_Java_Jsp_Arraylist_Iterator - Fatal编程技术网

Java 返回零的列表迭代器

Java 返回零的列表迭代器,java,jsp,arraylist,iterator,Java,Jsp,Arraylist,Iterator,我试图使用列表迭代器迭代表中的记录,但它返回的记录为零。我使用了setter-getter类并试图将记录提取到jsp页面中 代码如下: java函数: public List<product> getProducts() { List<product> prod=new ArrayList<product>(); try { conn = obj.connect(); String sql="select product.produ

我试图使用列表迭代器迭代表中的记录,但它返回的记录为零。我使用了setter-getter类并试图将记录提取到jsp页面中

代码如下:

java函数:

public List<product> getProducts()
{ 
   List<product> prod=new ArrayList<product>();
  try
  {
   conn = obj.connect();
   String sql="select product.product_name , product.price ,  product.image_url "
           + "from category , product "
           + "where product.category_id=category.category_id and   product.product_brand like 'LG%'";
     rs=cs.executeQuery(sql);
   while(rs.next())
   {
      p.setPname(rs.getString(1));
      p.setPrice(rs.getString(2));
      p.setImg(rs.getString(3));
   }
     prod.add(p);
  }

    catch(SQLException e)
    {
        e.printStackTrace();
    }
    catch(Exception k)
    {
        k.printStackTrace();
    }
  return prod;
}

移动prod.addp;在while循环中。因为您不是每次都添加对象。此外,每次都需要在循环中创建p的新对象

while(rs.next())
   {
  product p = new product();
  p.setPname(rs.getString(1));
  p.setPrice(rs.getString(2));
  p.setImg(rs.getString(3));
   prod.add(p);
  }

您必须使用as从类别和产品中删除

String sql="select product.product_name , product.price ,  product.image_url "
           + "from category as product "
           + "where product.category_id=category.category_id and   product.product_brand like 'LG%'"
或 你也试试这个

prod=cs.executeQuery(sql);
Iterator it=prod.iterator;

while(it.next())
{
---------------
}

我试过了,但不起作用。。相同的结果..尝试了循环内的对象也通过直接在数据库上运行来检查查询是否返回行现在它正在返回记录,但它只对最后一条记录进行了3次迭代!!您是否在循环产品p=新产品中添加了这一行??我不明白为什么我们需要在每次迭代中创建一个新对象。。。但它工作得很好,您正在执行操作op=新操作,然后访问它。你是如何让dopata进入op的?你不能仅仅通过创建新的操作来获取数据,对吗?
String sql="select product.product_name , product.price ,  product.image_url "
           + "from category as product "
           + "where product.category_id=category.category_id and   product.product_brand like 'LG%'"
prod=cs.executeQuery(sql);
Iterator it=prod.iterator;

while(it.next())
{
---------------
}