我正在尝试使用list iterator
从表中迭代记录,但它返回zero
条记录。我使用了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;
}
jsp代码:
operations op=new operations();
product p=new product();
List<product> list=op.getProducts();
%>
<title>LG Mobiles</title>
</head>
<body>
<b><font color="blue">Total Records Fetched : <strong><%=list.size()%></strong></font></b>
QUERY在sql中正常运行,我检查并确认
下面的是来自setter getter class product.java
public void setPname(String pname)
{
this.pname=pname;
}
public String getPname()
{
return pname;
}
public void setPrice(String price)
{
this.price=price;
}
public String getPrice()
{
return price;
}
答案 0 :(得分:4)
移动prod.add(p);在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);
}
答案 1 :(得分:0)
您必须使用
从类别和产品中删除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())
{
---------------
}