利用数据库实现分页,并显示在Table中

该博客介绍了如何使用SQL实现数据库分页查询,并将结果显示在HTML Table中。通过Java代码展示了一个分页查询的例子,使用了PreparedStatement执行SQL,同时在JSP页面展示了如何接收参数并显示分页内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库实现每次获得N(可以更改)条数据并下一次跳过已获得的数据
MYsql:    String sql = "select * from GoodsType LIMIT "+start+","+sum; 为Mysql数据库

SQL:       String sql = "select top "+sum+" * from GoodsType where GoodsTypeid not in (select top "+start+" GoodsTypeid from GoodsType)";

在表格中每次循环显示出来就行,(注:打开或者跳转当前页面时候都要传入一个参数值,否则:404)

例:

方法:public List<GoodsType> findGoodsTypeByPage(int page) { //分页查询
List<GoodsType> list = new ArrayList<GoodsType>();
GoodsType goodsType = null;
    Connection conn = null;//连接对象(建立通道java-驱动)
    PreparedStatement pstmt = null;//执行对象(执行sql语句)
        ResultSet rs = null;//结果集(查询数据库返回结果集)    
        int sum=10;//sum值为每页显示20条
int start=sum *(page-1);//第1页第一条记录下标是0.第二页第一条记录下标为20,这个是根据给的页面数值找下标初始值
//     String sql = "select * from GoodsType LIMIT "+start+","+sum; 为Mysql数据库
String sql = "select top "+sum+" * from GoodsType where GoodsTypeid not in (select top "+start+" GoodsTypeid from GoodsType)";
    try {
//1获得连接
    conn = DBConnection.getConn();
    //2创建执行对象
    pstmt = conn.prepareStatement(sql);
    rs = pstmt.executeQuery();
    while(rs.next()){//判断是否查询到数据
    goodsType = new GoodsType();
    //把rs中的数据封装到goodsType对象
    goodsType.setGoodsTypeId(rs.getInt(1));//rs索引从1开始,表示表中第一列,按照数据库表列的顺序
    goodsType.setGoodsTypeName(rs.getString(2));
    goodsType.setGoodsTypeContent(rs.getString(3));
    //将对象添加到集合
    list.add(goodsType);
    }
} catch (Exception e) {
e.printStackTrace();
}finally{
//关闭资源
DBConnection.closeResultSet(rs);
DBConnection.closeStatement(pstmt);
DBConnection.closeConn(conn);
}
    return list;
}

JSP页面关键代码:

<Table>

<%
int p=1;
p=Integer.parseInt(request.getParameter("page"));
if(p<1) p=1; //当页数小于1的时候,就为第一页
GoodsTypeDaoImpl g = new GoodsTypeDaoImpl();
List<GoodsType> list = g.findGoodsTypeByPage(p);
for(GoodsType goodsType :list){
%>
<tr>
<td valign="middle" align="left"><%out.print(goodsType.getGoodsTypeId()); %></td>
<td valign="middle" align="left"><%=goodsType.getGoodsTypeName() %></td>
<td valign="middle" align="left"><%=goodsType.getGoodsTypeContent() %></td>
</tr>
<%
} %>
</table><br/><p align="right">第<%out.print(p); %>页&nbsp;&nbsp;
<a href="manageGoodsType/manageGoodsType.jsp?page=<%=p-1%>">上一页</a>
<a href="manageGoodsType/manageGoodsType.jsp?page=<%=p+1%>">下一页</a><br/></p>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值