• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            大龍的博客

            常用鏈接

            統計

            最新評論

            jsp+oracle實現簡單的分頁

            oracle腳本:drop table t_student cascade constraints;
            Java代碼  收藏代碼
            1. /*==============================================================*/  
            2. /* Table: t_student                                           */  
            3. /*==============================================================*/  
            4. create table t_student  (  
            5.    s_id              char(10)                        not null,  
            6.    s_name             varchar2(20)                    not null,  
            7.    s_age              char(2)                         not null,  
            8.    s_sex              char(2)                         not null,  
            9.    s_class            varchar2(20),  
            10.    constraint PK_T_STUDENT primary key (s_id)  
            11. );  
            12.   
            13. insert into t_student values('0001','張三','20','男','08級二班') ;  
            14. insert into t_student values('0002','李四','21','女','08級二班') ;  
            15. insert into t_student values('0003','王五','20','男','08級二班') ;  
            16. insert into t_student values('0004','趙柳','20','女','08級一班') ;  
            17. insert into t_student values('0005','楊梅','21','男','08級二班') ;  
            18. insert into t_student values('0006','劉海','23','女','08級一班') ;  
            19. insert into t_student values('0007','孫江','20','女','08級一班') ;  
            20. insert into t_student values('0008','蘇燦','22','男','08級二班') ;  
            21. insert into t_student values('0009','王霞','23','女','08級一班') ;  
            22. insert into t_student values('0010','王猛','22','男','08級二班') ;  
            23. insert into t_student values('0011','張相','22','女','08級一班') ;  
            24. insert into t_student values('0012','香橙','20','女','08級一班') ;  
            25. insert into t_student values('0013','李心','21','女','08級二班') ;  
            26. insert into t_student values('0014','張強','20','男','08級一班') ;  
            27. insert into t_student values('0015','趙琳','21','女','08級一班') ;  
            28. insert into t_student values('0016','劉達','21','男','08級二班') ;  
            29. insert into t_student values('0017','蘇惠','20','女','08級二班') ;  
            30. insert into t_student values('0018','賈瑞','20','女','08級一班') ;  
            31. insert into t_student values('0019','谷瑞坤','22','男','08級二班') ;  
            32. insert into t_student values('0020','祥還','21','男','08級一班') ;  
            33. commit;  

              采用單利模式創建DbUtil類獲得Connection對象:package com.stmcc.test.util;

            Java代碼  收藏代碼
            1. import java.sql.*;  
            2.   
            3. public class DbUtil {  
            4.   
            5.     private static final String driver = "oracle.jdbc.driver.OracleDriver" ;  
            6.     private static final String url = "jdbc:oracle:thin:@10.10.10.2:1521:orcl" ;  
            7.     private static final String username = "test" ;  
            8.     private static final String password = "test" ;  
            9.     public static Connection getConnection(){  
            10.         Connection conn = null ;  
            11.         try{  
            12.             Class.forName(driver) ;  
            13.             conn = DriverManager.getConnection(url, username, password) ;  
            14.         }catch(Exception e){  
            15.             e.printStackTrace() ;  
            16.         }  
            17.         return conn ;  
            18.     }  
            19.   
            20.     public static void close(Connection conn) {  
            21.         if (conn != null) {  
            22.             try {  
            23.                 conn.close();  
            24.             } catch (SQLException e) {  
            25.                 e.printStackTrace();  
            26.             }  
            27.         }  
            28.     }  
            29.       
            30.     public static void close(PreparedStatement pstmt) {  
            31.         if (pstmt != null) {  
            32.             try {  
            33.                 pstmt.close();  
            34.             } catch (SQLException e) {  
            35.                 e.printStackTrace();  
            36.             }  
            37.         }  
            38.     }  
            39.       
            40.     public static void close(ResultSet rs ) {  
            41.         if (rs != null) {  
            42.             try {  
            43.                 rs.close();  
            44.             } catch (SQLException e) {  
            45.                 e.printStackTrace();  
            46.             }  
            47.         }  
            48.     }  
            49.     public static void main(String[] args) {  
            50.         System.out.println(DbUtil.getConnection());  
            51.     }  
            52. }  

             創建學生實體類:package com.stmcc.test;

            Java代碼  收藏代碼
            1. public class Student {  
            2.   
            3.     private String s_id ;  
            4.     private String s_name ;  
            5.     private String s_age ;  
            6.     private String s_sex ;  
            7.     private String s_class ;  
            8.     public String getS_id() {  
            9.         return s_id;  
            10.     }  
            11.     public void setS_id(String s_id) {  
            12.         this.s_id = s_id;  
            13.     }  
            14.     public String getS_name() {  
            15.         return s_name;  
            16.     }  
            17.     public void setS_name(String s_name) {  
            18.         this.s_name = s_name;  
            19.     }  
            20.     public String getS_age() {  
            21.         return s_age;  
            22.     }  
            23.     public void setS_age(String s_age) {  
            24.         this.s_age = s_age;  
            25.     }  
            26.     public String getS_sex() {  
            27.         return s_sex;  
            28.     }  
            29.     public void setS_sex(String s_sex) {  
            30.         this.s_sex = s_sex;  
            31.     }  
            32.     public String getS_class() {  
            33.         return s_class;  
            34.     }  
            35.     public void setS_class(String s_class) {  
            36.         this.s_class = s_class;  
            37.     }  
            38. }  

              創建學生管理類:package com.stmcc.test.util;

            Java代碼  收藏代碼
            1. import com.stmcc.test.*;  
            2. import java.sql.* ;  
            3. import java.util.*;   
            4. public class StuManager {  
            5.   
            6.     private static StuManager instance = new StuManager() ;  
            7.       
            8.     private StuManager(){} ;  
            9.       
            10.     public static StuManager getInstance(){  
            11.         return instance ;  
            12.     }  
            13. //  oracle實現分頁的查詢語句  
            14. //  select s_id, s_name, s_age, s_sex, s_class  
            15. //  from  
            16. //  (  
            17. //    select rownum rn, s_id, s_name, s_age, s_sex, s_class  
            18. //    from  
            19. //      (select s_id, s_name, s_age, s_sex, s_class   
            20. //       from t_student order by s_id  
            21. //      )where rownum <= 10  
            22. //  )where rn > 5 ;  
            23.     public PageModel findStudentList(int pageNo, int pageSize){  
            24.         PageModel pageModel = null ;  
            25.         StringBuffer sql = new StringBuffer() ;  
            26.         sql.append("select s_id, s_name, s_age, s_sex, s_class ")  
            27.             .append("from")  
            28.             .append("(")  
            29.             .append("select rownum rn, s_id, s_name, s_age, s_sex, s_class ")  
            30.             .append("from")  
            31.             .append("(")  
            32.             .append("select s_id, s_name, s_age, s_sex, s_class ")  
            33.             .append("from t_student order by s_id")  
            34.             .append(")")  
            35.             .append("where rownum <= ?")  
            36.             .append(")")  
            37.             .append("where rn > ? ");  
            38.         Connection conn = null ;  
            39.         PreparedStatement pstmt = null ;  
            40.         ResultSet rs = null ;  
            41.         try{  
            42.             conn = DbUtil.getConnection() ;  
            43.             pstmt = conn.prepareStatement(sql.toString()) ;  
            44.             pstmt.setInt(1, pageNo*pageSize) ;  
            45.             pstmt.setInt(2, (pageNo - 1)*pageSize) ;  
            46.             rs = pstmt.executeQuery() ;  
            47.             List<Student> stuList = new ArrayList<Student>() ;  
            48.             while (rs.next()){  
            49.                 Student stu = new Student() ;  
            50.                 stu.setS_id(rs.getString("s_id")) ;  
            51.                 stu.setS_name(rs.getString("s_name")) ;  
            52.                 stu.setS_age(rs.getString("s_age")) ;  
            53.                 stu.setS_sex(rs.getString("s_sex")) ;  
            54.                 stu.setS_class(rs.getString("s_class")) ;  
            55.                 stuList.add(stu) ;  
            56.             }  
            57.             pageModel = new PageModel() ;  
            58.             pageModel.setList(stuList) ;  
            59.             pageModel.setTotalRecords(getTotalRecords(conn)) ;  
            60.             pageModel.setPageSize(pageSize);  
            61.             pageModel.setPageNo(pageNo);  
            62.         }catch(Exception e){  
            63.             e.printStackTrace() ;  
            64.         }finally{  
            65.             DbUtil.close(rs) ;  
            66.             DbUtil.close(pstmt) ;  
            67.             DbUtil.close(conn) ;  
            68.         }  
            69.         return pageModel ;  
            70.     }  
            71.     /** 
            72.      * 取得總記錄數 
            73.      * @param conn 
            74.      * @return 
            75.      */  
            76.     private int getTotalRecords(Connection conn)   
            77.     throws SQLException {  
            78.         String sql = "select count(*) from t_student";  
            79.         PreparedStatement pstmt = null;  
            80.         ResultSet rs = null;  
            81.         int count = 0;  
            82.         try {  
            83.             pstmt = conn.prepareStatement(sql);  
            84.             rs = pstmt.executeQuery();  
            85.             rs.next();  
            86.             count = rs.getInt(1);  
            87.         }finally {  
            88.             DbUtil.close(rs);  
            89.             DbUtil.close(pstmt);  
            90.         }  
            91.         return count;  
            92.     }  
            93. }  

             創建分頁模型類實現業務邏輯:package com.stmcc.test.util;

            Java代碼  收藏代碼
            1. import java.util.* ;  
            2. public class PageModel {  
            3.   
            4.     //結果集  
            5.     private List list ;  
            6.       
            7.     //查詢總記錄數  
            8.     private int totalRecords ;  
            9.       
            10.     //每頁多少條數據  
            11.     private int pageSize ;  
            12.       
            13.     //第幾頁  
            14.     private int pageNo ;  
            15.       
            16.     /** 
            17.      * 總頁數 
            18.      * @return 
            19.      */  
            20.     public int getTotalPages(){  
            21.         return (totalRecords + pageSize -1) / pageSize ;  
            22.     }  
            23.       
            24.     /** 
            25.      * 取得首頁 
            26.      * @return 
            27.      */  
            28.     public int getTopPageNo(){  
            29.         return 1 ;  
            30.     }  
            31.       
            32.     /** 
            33.      * 上一頁 
            34.      * @return 
            35.      */  
            36.     public int getPreviousPageNo(){  
            37.         if(pageNo <= 1){  
            38.             return 1 ;  
            39.         }  
            40.         return pageNo - 1 ;  
            41.     }  
            42.       
            43.     /** 
            44.      * 下一頁 
            45.      * @return 
            46.      */  
            47.     public int getNextPageNo(){  
            48.         if(pageNo >= getBottomPageNo()){  
            49.             return getBottomPageNo() ;  
            50.         }  
            51.         return pageNo + 1 ;  
            52.     }  
            53.       
            54.     /** 
            55.      * 取得尾頁 
            56.      * @return 
            57.      */  
            58.     public int getBottomPageNo(){  
            59.         return getTotalPages() ;  
            60.     }  
            61.   
            62.     public List getList() {  
            63.         return list;  
            64.     }  
            65.   
            66.     public void setList(List list) {  
            67.         this.list = list;  
            68.     }  
            69.   
            70.     public int getTotalRecords() {  
            71.         return totalRecords;  
            72.     }  
            73.   
            74.     public void setTotalRecords(int totalRecords) {  
            75.         this.totalRecords = totalRecords;  
            76.     }  
            77.   
            78.     public int getPageSize() {  
            79.         return pageSize;  
            80.     }  
            81.   
            82.     public void setPageSize(int pageSize) {  
            83.         this.pageSize = pageSize;  
            84.     }  
            85.   
            86.     public int getPageNo() {  
            87.         return pageNo;  
            88.     }  
            89.   
            90.     public void setPageNo(int pageNo) {  
            91.         this.pageNo = pageNo;  
            92.     }  
            93. }  

             jsp頁面:<%@ page contentType="text/html" pageEncoding="GBK"%>

            Java代碼  收藏代碼
            1. <%@ page import="com.stmcc.test.util.*"%>  
            2. <%@ page import="com.stmcc.test.*"%>  
            3. <%@ page import="java.sql.*"%>  
            4. <%@ page import="java.util.*"%>  
            5. <html>  
            6. <head><title>分頁展示</title></head>  
            7. <%  
            8.     int pageNo = 1 ;  
            9.     int pageSize = 5 ;  
            10.     String pageNoString = request.getParameter("pageNo") ;  
            11.     if(pageNoString != null){  
            12.         pageNo = Integer.parseInt(pageNoString) ;  
            13.     }  
            14.     PageModel pageModel = StuManager.getInstance().findStudentList(pageNo,pageSize) ;  
            15. %>  
            16. <script type="text/javaScript">  
            17.     function topPage() {  
            18.         window.self.location = "student.jsp?pageNo=<%=pageModel.getTopPageNo()%>";  
            19.     }  
            20.       
            21.     function previousPage() {  
            22.         window.self.location = "student.jsp?pageNo=<%=pageModel.getPreviousPageNo()%>";  
            23.     }     
            24.       
            25.     function nextPage() {  
            26.         window.self.location = "student.jsp?pageNo=<%=pageModel.getNextPageNo()%>";  
            27.     }  
            28.       
            29.     function bottomPage() {  
            30.         window.self.location = "student.jsp?pageNo=<%=pageModel.getBottomPageNo()%>";  
            31.     }  
            32. </script>  
            33. <body>  
            34. <center>  
            35.   <table border="1">  
            36.   <tr>  
            37.     <td>學生編號</td>  
            38.     <td>學生姓名</td>  
            39.     <td>學生年齡</td>  
            40.     <td>學生性別</td>  
            41.     <td>學生班級</td>  
            42.   </tr>  
            43.   <%  
            44.     List stuList = pageModel.getList() ;  
            45.     for(Iterator<Student> iter = stuList.iterator(); iter.hasNext();){  
            46.         Student stu = iter.next() ;  
            47.   %>  
            48.   <tr>  
            49.     <td><%=stu.getS_id() %></td>  
            50.     <td><%=stu.getS_name() %></td>  
            51.     <td><%=stu.getS_age() %></td>  
            52.     <td><%=stu.getS_sex() %></td>  
            53.     <td><%=stu.getS_class() %></td>  
            54.   </tr>  
            55.   <%  
            56.     }  
            57.   %>  
            58.   <tr><td colspan="5">  
            59.       共&nbsp;<%=pageModel.getTotalPages() %>&nbsp;頁&nbsp;&nbsp;&nbsp;&nbsp;  
            60.       當前第&nbsp;<%=pageModel.getPageNo() %>頁&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;  
            61.   <input type="button" value="首頁" onClick="topPage()">  
            62.   <input type="button" value="上一頁" onClick="previousPage()">  
            63.   <input type="button" value="下一頁" onClick="nextPage()">  
            64.   <input type="button" value="尾頁" onClick="bottomPage()">  
            65.   </td></tr>  
            66.   </table>  
            67. </center>  
            68. </body>  
            69. </html>  

            posted on 2011-09-07 02:21 大龍 閱讀(472) 評論(0)  編輯 收藏 引用

            亚洲精品国产美女久久久| 国产69精品久久久久777| 亚洲国产精品久久久久网站| 色偷偷偷久久伊人大杳蕉| 亚洲国产天堂久久综合| 久久中文精品无码中文字幕| 久久精品成人| 久久久久亚洲av毛片大| 久久99精品久久久久久野外 | 日日狠狠久久偷偷色综合免费| 青青国产成人久久91网| 久久久久中文字幕| 久久线看观看精品香蕉国产| 久久噜噜电影你懂的| 99热都是精品久久久久久| 精品久久人人妻人人做精品| 久久精品国产72国产精福利| 人妻系列无码专区久久五月天| 色8激情欧美成人久久综合电| 中文字幕无码av激情不卡久久| 一本色道久久综合狠狠躁篇 | 亚洲日韩中文无码久久| 久久精品欧美日韩精品| 久久久久久久99精品免费观看| 国产精品九九久久精品女同亚洲欧美日韩综合区 | 久久久久国产精品人妻| 无码超乳爆乳中文字幕久久| 成人国内精品久久久久影院| 国产一区二区精品久久岳| 久久人人爽人人精品视频| 综合人妻久久一区二区精品| 国产99精品久久| 伊人色综合久久天天人守人婷| 久久综合给合久久国产免费| 色综合久久天天综合| 亚洲欧美日韩精品久久亚洲区| 无码AV波多野结衣久久| 精品久久久久久无码中文字幕| 亚洲精品WWW久久久久久| 久久精品人人做人人爽电影蜜月| 91久久精品无码一区二区毛片|