1. 程式人生 > >利用資料庫實現分頁,並顯示在Table中

利用資料庫實現分頁,並顯示在Table中

資料庫實現每次獲得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>