JSP网页怎样从数据库返回多条数据呢?
在数据库内查找同一列不同行的几个相同数据然后把这几个相同数据所在行的所有数据一次性返回在jsp网页中,该如何实现呢?请写出个简单的例子谢谢PS:我用普通的resultse...
在数据库内查找同一列不同行的几个相同数据然后把这几个相同数据所在行的所有数据一次性返回在jsp网页中,该如何实现呢? 请写出个简单的例子 谢谢 PS:我用普通的resultset只能返回查找到的第一个数据所在行所有信息,然后接下来的数据他就不查找了.
先谢谢kelvin0807的回答
补充一下,我确实用了while(rs.next())但是只查找了一行的数据让jsp页面显示,我的javabean程序如下:
public CusInfoOutDetails getCusInfoOutDetails(String cussfz) throws Exception
{ .......
while(rs.next())
{
CusInfoOutDetails bd = new CusInfoOutDetails(rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6));
return bd;
}
......
}
我猜测是不是因为return了所以循环就给中断了.是不是要在javabean里使用ArrayList定义变量,用这个数组变量储存数据,循环完后再return这个变量来返回完整的查找信息?
我在jsp网页中直接这样用JDBC可以显示全部查找的数据,这样写网页会很累赘所以不想用它:
......
while (rs.next())
{
String stucol2 = rs.getString(2);
String stucol3 = rs.getString(3);
String stucol4 = rs.getString(4);
String stucol5 = rs.getString(5);
String stucol6 = rs.getString(6);
<%=stucol2%>
<%=stucol3%>
<%=stucol4%>
<%=stucol5%>
<%=stucol6%>
}
我是JSP初学者,对标签还不太理解,要仔细看看书先~ 展开
先谢谢kelvin0807的回答
补充一下,我确实用了while(rs.next())但是只查找了一行的数据让jsp页面显示,我的javabean程序如下:
public CusInfoOutDetails getCusInfoOutDetails(String cussfz) throws Exception
{ .......
while(rs.next())
{
CusInfoOutDetails bd = new CusInfoOutDetails(rs.getString(2), rs.getString(3), rs.getString(4), rs.getString(5), rs.getInt(6));
return bd;
}
......
}
我猜测是不是因为return了所以循环就给中断了.是不是要在javabean里使用ArrayList定义变量,用这个数组变量储存数据,循环完后再return这个变量来返回完整的查找信息?
我在jsp网页中直接这样用JDBC可以显示全部查找的数据,这样写网页会很累赘所以不想用它:
......
while (rs.next())
{
String stucol2 = rs.getString(2);
String stucol3 = rs.getString(3);
String stucol4 = rs.getString(4);
String stucol5 = rs.getString(5);
String stucol6 = rs.getString(6);
<%=stucol2%>
<%=stucol3%>
<%=stucol4%>
<%=stucol5%>
<%=stucol6%>
}
我是JSP初学者,对标签还不太理解,要仔细看看书先~ 展开
1个回答
展开全部
编写一个有get,set方法的javaBean 把从数据库取出的值一一放如javaBean实例中,在通过while(rs.next)把javaBean写入ArrayList数组中。。然后用request.setAttribute("名称",数组对象)将数组设置进页面隐含对象里.
在页面可以使用JSTL标签<c:foreach><c:out></c:out></c:foreach>
将数组中的值打印出来
这样是可以循环打印出你数据库所有记录的。
至于你说的:PS:我用普通的resultset只能返回查找到的第一个数据所在行所有信息,然后接下来的数据他就不查找了.
是因为你没有rs.next。记录当然是在第一条了。
呵呵~那就更怪不得出现这样的错误了。首先你这样做的话。你的方法返回值应该是一个ArrayList集合。其次你在while循环体里应该是将bean的实例对象加入到ArrayList集合中。
你可以在方法前声明一个集合。Collection coll=new ArrayList()
把return bd; 删掉。换成coll.add(bd);
在在循环外return coll;这样你的方法是返回一个集合;
然后在调用方法后把coll设置进request隐含对象里。在页面就可以直接使用了。后面在使用我上面跟你说的<c:foreach><c:out></c:out></c:foreach>
这样你的jsp页面将不会有任何逻辑处理代码。只有纯html代码。是比较符合规范的。
你可以在网上查下jstl标签的<c:foreach><c:out>的使用方法。
在页面可以使用JSTL标签<c:foreach><c:out></c:out></c:foreach>
将数组中的值打印出来
这样是可以循环打印出你数据库所有记录的。
至于你说的:PS:我用普通的resultset只能返回查找到的第一个数据所在行所有信息,然后接下来的数据他就不查找了.
是因为你没有rs.next。记录当然是在第一条了。
呵呵~那就更怪不得出现这样的错误了。首先你这样做的话。你的方法返回值应该是一个ArrayList集合。其次你在while循环体里应该是将bean的实例对象加入到ArrayList集合中。
你可以在方法前声明一个集合。Collection coll=new ArrayList()
把return bd; 删掉。换成coll.add(bd);
在在循环外return coll;这样你的方法是返回一个集合;
然后在调用方法后把coll设置进request隐含对象里。在页面就可以直接使用了。后面在使用我上面跟你说的<c:foreach><c:out></c:out></c:foreach>
这样你的jsp页面将不会有任何逻辑处理代码。只有纯html代码。是比较符合规范的。
你可以在网上查下jstl标签的<c:foreach><c:out>的使用方法。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询