JSP分页问题

qwe065560 2011-01-25 04:34:00
如何能横向取出ResultSet的结果

public List<Paging> pagingList(String sql,int pageNum,int pageSize,int pageSum){
//获取要显示的记录数
ResultSet rs = con.executeQuery(sql+"limit "+((pageNum-1)*pageSize)+","+pageSize);
List<Paging> pageList=new ArrayList<Paging>();
while (rs.next()) {
?????????
pageList.add(????);
}
return pageList;
}

我现在完成分页查询。不知道怎么把结果放到这个list中。谢谢帮忙~
...全文
237 点赞 收藏 35
写回复
35 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
qwe065560 2011-01-26
[Quote=引用 31 楼 music_mouse 的回复:]

谈到可重用性要强。。这个地方确实也不好做。。
之前做这种问题时,SQL语句和取记录的起止条件是分开的。
这样的话,你可以去执行两次查询。。
一次去统计总条数,一次去把起止条件加上去查询对应的记录。
[/Quote]
现在我确实改成这种方式来实现了~
回复
suzhoulong 2011-01-26
有苏州的高手吗?我有问题想解决
回复
ETCentury 2011-01-26
为什么不能返回ResultSet呢?
回复
music_mouse 2011-01-25
谈到可重用性要强。。这个地方确实也不好做。。
之前做这种问题时,SQL语句和取记录的起止条件是分开的。
这样的话,你可以去执行两次查询。。
一次去统计总条数,一次去把起止条件加上去查询对应的记录。
回复
qwe065560 2011-01-25
[Quote=引用 29 楼 sxb372435741 的回复:]

用的是数据库里面的字段名取的!没有用下标!
[/Quote]
我遍历没用foreach...用的是struts的逻辑标签 <logic:iterate> 不过谢谢你的建议我好好看看~。
回复
sxb372435741 2011-01-25
用的是数据库里面的字段名取的!没有用下标!
回复
sxb372435741 2011-01-25
可以的嘛!我原来用的过的!
Map[] map1=gr.selectGroup((Integer)map.get("uid"));
session.setAttribute("group",map1);
这个是存值方式
<c:forEach var="item" items="${ group}" varStatus="num">
<tr onmouseover="javascript:this.bgColor='cccccc'" onmouseout="javascript:this.bgColor='ffffff'" style="cursor:hand">
<td height="28">${num.index+1 }</td>
<td>${item.groupName }<br/></td>
<td align="center">
<c:if test="${!item.isMr }">

<label style="color: red;">默认分组不能修改</label>
</c:if>
<c:if test="${item.isMr }">

<label style="color: red;"><a href="update.jsp?id=${item.groupId }">修改</a></label>
</c:if>
</td>
<td align="center">
<c:if test="${!item.isMr }">

<label style="color: red;">默认分组不能删除</label>
</c:if>
<c:if test="${item.isMr }">

<label style="color: red;"><a href="javascript:delType(${item.groupId })">删除</a></label>
</c:if>
</td>
</tr>
</c:forEach>
回复
qwe065560 2011-01-25
我换个问的方式好了。。。。。。如果不知道ResultSet有多少列。如何取值?
回复
qwe065560 2011-01-25
[Quote=引用 25 楼 sxb372435741 的回复:]

你用的jstl吗?
[/Quote]
回复
sxb372435741 2011-01-25
你用的jstl吗?
回复
qwe065560 2011-01-25
[Quote=引用 21 楼 sxb372435741 的回复:]

public static Map[] SelectTable(String sql,Object[] values)
{
Map[] map=null;

try {
conn=getCon();
pst=conn.prepareStatement(sql);
if(values!=null)
{
for(int i=0;i<values.length;i++)
{
ps……
[/Quote]
我页面上是直接用逻辑标签便利然后用el表达式来取值。这个貌似用不了
回复
qwe065560 2011-01-25
[Quote=引用 20 楼 woshigaoshou980 的回复:]

用这个吧,struts标签分页,很强大的

<s:form name="frm2" action="" theme="simple">
<div style="margin-left: 30px; margin-right: 0px">
<display:table id="list" name="cList" class="its" cellpadding="0"
pagesize=……
[/Quote]
自定义标签分页。我知道,但是我的页面显示是一个页面关联好几个东西的不能改~
回复
qwe065560 2011-01-25
[Quote=引用 19 楼 heardy 的回复:]

引用 13 楼 sxb372435741 的回复:
引用 5 楼 qwe065560 的回复:
引用 1 楼 sxb372435741 的回复:

while (rs.next()) {
Paging p=new Paging();
p.set..(rs.get..("字段"));
p.set..(rs.get..("字段"));
pageList.add(????);
}
……
[/Quote]
我就是不想用这种方式....重用性太低了~
回复
sxb372435741 2011-01-25
public static Map[] SelectTable(String sql,Object[] values)
{
Map[] map=null;

try {
conn=getCon();
pst=conn.prepareStatement(sql);
if(values!=null)
{
for(int i=0;i<values.length;i++)
{
pst.setObject(i+1, values[i]);

}
}
rs=pst.executeQuery();
Result rst=ResultSupport.toResult(rs);

map =rst.getRows();


} catch (Exception e) {

e.printStackTrace();
}
finally
{
close(conn,pst,rs);
}

return map;
}
回复
用这个吧,struts标签分页,很强大的

<s:form name="frm2" action="" theme="simple">
<div style="margin-left: 30px; margin-right: 0px">
<display:table id="list" name="cList" class="its" cellpadding="0"
pagesize="5" requestURI="queryClassInfo.do">
<display:column style="WIDTH: 5%" title="选择" media="html">
<input type="checkbox" name="selectId" id="classId" value="${list.classId}" />
</display:column>
<display:column property="classNo" style="WIDTH: 10%" title="班级编号" />
<display:column property="className" style="WIDTH: 8%" title="班级名称" />
<display:column property="classSize" style="WIDTH: 4%" title="人数" />
<display:column property="departmentName" style="WIDTH: 10%" title="所属系部"/>
<display:column property="speciality" style="WIDTH: 8%" title="专业方向"/>
<display:column property="teacherName" style="WIDTH: 10%" title="班主任"/>
<display:column property="tel" style="WIDTH: 10%" title="班主任电话"/>

</display:table>
</div>
</s:form>


希望对你有帮助
回复
heardy 2011-01-25
[Quote=引用 13 楼 sxb372435741 的回复:]
引用 5 楼 qwe065560 的回复:
引用 1 楼 sxb372435741 的回复:

while (rs.next()) {
Paging p=new Paging();
p.set..(rs.get..("字段"));
p.set..(rs.get..("字段"));
pageList.add(????);
}
这样就可以了啊!

晕哥们。。我那个不是vo类谢谢。……
[/Quote]

List<Paging> pageList=new ArrayList<Paging>();
你这个pageList里面存的都是paging类型的,所有在rs里面实例化Paging p=new Paging();
然后将这个paging压入pageList

pageList里面获取的是每一个Paging
Paging里面获取的是每一个原数据

你的Paging类应该是
public Paging{
String name;
Stirng pass;

public void setName(String name){this.name = name}
....
}
回复
qwe065560 2011-01-25
[Quote=引用 16 楼 sxb372435741 的回复:]

可以呀!
rs=pst.executeQuery();
Result rst=ResultSupport.toResult(rs);
map =rst.getRows();
这个你用吗?不过存的值就map的。
[/Quote]
能给稍微详细点的代码么~
回复
qwe065560 2011-01-25
[Quote=引用 15 楼 wangxiaoyan1234 的回复:]

list里放一个list,然后每一个list里存放一列数据不行吗?
[/Quote]
给个代码看看吧。。。。这么说太空了......
回复
sxb372435741 2011-01-25
可以呀!
rs=pst.executeQuery();
Result rst=ResultSupport.toResult(rs);
map =rst.getRows();
这个你用吗?不过存的值就map的。
回复
sally-wang 2011-01-25
list里放一个list,然后每一个list里存放一列数据不行吗?
回复
加载更多回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2011-01-25 04:34
社区公告
暂无公告