posts - 495,  comments - 11,  trackbacks - 0

          JSP分頁共設計了三個類:SplitPageVo 、PageVo、SqlVo

          以上三個類請參考本博客的

          JSP分頁類一:SplitPageVo?????? JSP分頁類二:SqlVo????????? JSP分頁類三:PageVo

          三篇文章

          核心為一條SQL語句:

          SELECT * FROM??????????????

          ???????????? (SELECT TOP 每頁顯示條數 * FROM

          ???????????????????? (SELECT TOP 每頁顯示數量x當前頁 * FROM 表名)????表變量1

          ???????????????????????????? ORDER BY 排序字段 DESC)?? 表變量2

          ???????????????????????????????????????? ORDER BY?? 排序字段

          如:

          SELECT * FROM

          ????????????? (SELECT TOP 10 * FROM

          ?????????????????????????? (SELECT TOP 3x10 * FROM shop) x

          ???????????????????????????????????? ORDER BY id DESC) y

          ????????????????????????????????????????????? ???? ORDER BY id

          使用簡要說明:

          //********************************************使~~~~用~~~~說~~~~明*****************************************
          /**
          ...............................................................
          在SERVELET里:
          第一步:獲取當前頁碼
          if(request.getParameter("page")!=null){
          ??? page=Integer.parseInt(request.getParameter("page"));
          ??? }else{
          ??? page=1 ;
          ?? }
          第二步:創建跳轉對象
          ??? SplitPageVo vo=new SplitPageVo()
          第三步:設置SQL語句SqlVo,URL,當前頁面page
          ??? vo.setPageVo(page,10);
          ??? vo.setSqlVo("shop", "1=1", "id", "asc")
          ??? vo.setUrl("/servlet/Shop.do?action=0")
          第四步:傳入BIZ
          ??? TransOrderBiz biz=new TransOrderBiz()
          ??? vo=biz.getAllOrders(vo)
          第五步:頁面轉向
          request.setAttribute("OrderList",vo);
          url="/tpl/tplproject/OrderList.jsp";
          request.getRequestDispatcher(url).forward(request,response);
          ..................................................................
          在BIZ里:
          public class TransOrderBiz {
          public SplitPageVo getAllOrders(SplitPageVo vo){
          DBConnection dbc = new DBConnection();
          if(dbc.getConnect()){
          ?? Connection conn = dbc.getConn();
          ?? try{
          ?? BU_TRANS_ORDERDAO dao=new BU_TRANS_ORDERDAO();
          ?? vo=dao.findByAll(conn);
          ?? }catch(Exception e){
          ??? e.printStackTrace();
          ?? }finally{
          ??? try{
          ???? conn.close();
          ??? }catch(Exception ex){
          ???? ex.printStackTrace();
          ??? }
          ?? }
          }else{
          ?? System.out.println("數據庫連接失敗!");
          }
          return vo;
          }
          }

          ..................................................................
          在DAO里:
          public SplitPageVo findByAll(Connection conn ,SplitPageVo vo){
          ??? Vector v=new Vector();
          ??? StringBuffer sqlStr = null;
          ??? PreparedStatement ps=null;
          ??? Connection _conn=null;
          ??? ResultSet rs=null;
          ??? try{
          ???? _conn=conn;
          ???? $$$$$$$$$$$$$$$$$$$$$$$$$~~核~~心~~部~~分~~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
          ????? vo.getCount(_conn)//獲取條數
          ???? vo.setPageVo(vo.getPageVo().getNowPage(),vo.getPageVo().getCount(),vo.getPageVo().getPreList())//設置PageVo
          ???? int top1 = vo.getTop1();
          ???? int top2 = vo.getTop2();
          ???? String strSql=vo.getSqlVo().toAllSql(top1,top2)//取出SQL語句
          ???? $$$$$$$$$$$$$$$$$$$$$$$$$$~~核~~心~~部~~分~~$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$
          ???? ps=_conn.prepareStatement(strSql);
          ???? rs=ps.executeQuery();
          ???? while(rs.next()){
          ????? BU_TRANS_ORDERVO vo=new BU_TRANS_ORDERVO();
          ????? vo.setTO_ID(rs.getLong("TO_ID"));
          ?????????????????? 。。。。。。。。。。。。。。。。。
          ?????????????????? 。。。。。。。。。。。。。。。。。
          ?????????????????? 。。。。。。。。。。。。。。。。。
          ????? vo.setTO_PRICE(rs.getDouble("TO_PRICE"));
          ????? v.addElement(vo);
          ???? }
          ???? vo.setData(v)//放入數據
          ??? }
          ??? catch(Exception e){
          ???? e.printStackTrace();
          ??? }
          ??? finally{
          ???? try{
          ????? if (ps!=null){
          ?????? ps.close();
          ?????? ps=null;
          ????? }
          ?????
          ???? }catch(Exception e){
          ????? e.printStackTrace();
          ???? }
          ??? }
          ??? return vo;//返回
          ?? }

          ?? ................................................................................
          ?? 在JSP里:
          ?? SplitPageVo splitPageVo;
          ?? splitPageVo=(SplitPageVo)request.getAttribute("OrderList");
          ?? List l=splitPageVo.getData();
          ?? if(l!=null && l.size()>0 ){
          ?? for(int i=0;i<l.size() && i<l.size() ;i++){
          ?? ComplOrderVo vo=(ComplOrderVo)l.get(i);
          ??????????? 。。。。。。。。。。。。。。。。。。。
          ??????????? 。。。。。。。。。。。。。。。。。。。
          ??????????? 。。。。。。。。。。。。。。。。。。。
          ?? }
          ??????????? 。。。。。。。。。。。。。。。。。。。
          ??????????? 。。。。。。。。。。。。。。。。。。。
          ??????????? 。。。。。。。。。。。。。。。。。。。
          ??? <td >
          <%=splitPageVo.splitPage(splitPageVo)%> //分頁部分
          </td>
          ???????? 。。。。。。。。。。。。。。。。。。。
          ??????????? 。。。。。。。。。。。。。。。。。。。
          ??????????? 。。。。。。。。。。。。。。。。。。。
          ?? ................................................................................
          */

          posted on 2008-06-18 15:48 jadmin 閱讀(60) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 屯门区| 大连市| 奉新县| 石渠县| 新建县| 静安区| 万安县| 安化县| 姚安县| 镇沅| 铁岭县| 高密市| 会昌县| 胶州市| 瑞金市| 穆棱市| 渑池县| 儋州市| 宁远县| 利津县| 唐山市| 林周县| 乐陵市| 高邑县| 咸阳市| 宿州市| 中超| 沁阳市| 麦盖提县| 威信县| 交城县| 元谋县| 彰化市| 赣州市| 彭山县| 崇信县| 治多县| 台湾省| 永年县| 深水埗区| 庆安县|