<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-59  評論-31  文章-0  trackbacks-0
    oracle腳本:drop table t_student cascade constraints;

    /*==============================================================*/
    /* Table: t_student                                           */
    /*==============================================================*/
    create table t_student  (
       s_id              
    char(10)                        not null,
       s_name             varchar2(
    20)                    not null,
       s_age              
    char(2)                         not null,
       s_sex              
    char(2)                         not null,
       s_class            varchar2(
    20),
       constraint PK_T_STUDENT primary key (s_id)
    );

    insert into t_student values(
    '0001','張三','20','','08級二班') ;
    insert into t_student values(
    '0002','李四','21','','08級二班') ;
    insert into t_student values(
    '0003','王五','20','','08級二班') ;
    insert into t_student values(
    '0004','趙柳','20','','08級一班') ;
    insert into t_student values(
    '0005','楊梅','21','','08級二班') ;
    insert into t_student values(
    '0006','劉海','23','','08級一班') ;
    insert into t_student values(
    '0007','孫江','20','','08級一班') ;
    insert into t_student values(
    '0008','蘇燦','22','','08級二班') ;
    insert into t_student values(
    '0009','王霞','23','','08級一班') ;
    insert into t_student values(
    '0010','王猛','22','','08級二班') ;
    insert into t_student values(
    '0011','張相','22','','08級一班') ;
    insert into t_student values(
    '0012','香橙','20','','08級一班') ;
    insert into t_student values(
    '0013','李心','21','','08級二班') ;
    insert into t_student values(
    '0014','張強','20','','08級一班') ;
    insert into t_student values(
    '0015','趙琳','21','','08級一班') ;
    insert into t_student values(
    '0016','劉達','21','','08級二班') ;
    insert into t_student values(
    '0017','蘇惠','20','','08級二班') ;
    insert into t_student values(
    '0018','賈瑞','20','','08級一班') ;
    insert into t_student values(
    '0019','谷瑞坤','22','','08級二班') ;
    insert into t_student values(
    '0020','祥還','21','','08級一班') ;
    commit;

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

    import java.sql.*;

    public class DbUtil {

        
    private static final String driver = "oracle.jdbc.driver.OracleDriver" ;
        
    private static final String url = "jdbc:oracle:thin:@10.10.10.2:1521:orcl" ;
        
    private static final String username = "test" ;
        
    private static final String password = "test" ;
        
    public static Connection getConnection(){
            Connection conn 
    = null ;
            
    try{
                Class.forName(driver) ;
                conn 
    = DriverManager.getConnection(url, username, password) ;
            }
    catch(Exception e){
                e.printStackTrace() ;
            }
            
    return conn ;
        }

        
    public static void close(Connection conn) {
            
    if (conn != null) {
                
    try {
                    conn.close();
                } 
    catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        
    public static void close(PreparedStatement pstmt) {
            
    if (pstmt != null) {
                
    try {
                    pstmt.close();
                } 
    catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
        
    public static void close(ResultSet rs ) {
            
    if (rs != null) {
                
    try {
                    rs.close();
                } 
    catch (SQLException e) {
                    e.printStackTrace();
                }
            }
        }
        
    public static void main(String[] args) {
            System.out.println(DbUtil.getConnection());
        }
    }

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

    public class Student {

        
    private String s_id ;
        
    private String s_name ;
        
    private String s_age ;
        
    private String s_sex ;
        
    private String s_class ;
        
    public String getS_id() {
            
    return s_id;
        }
        
    public void setS_id(String s_id) {
            
    this.s_id = s_id;
        }
        
    public String getS_name() {
            
    return s_name;
        }
        
    public void setS_name(String s_name) {
            
    this.s_name = s_name;
        }
        
    public String getS_age() {
            
    return s_age;
        }
        
    public void setS_age(String s_age) {
            
    this.s_age = s_age;
        }
        
    public String getS_sex() {
            
    return s_sex;
        }
        
    public void setS_sex(String s_sex) {
            
    this.s_sex = s_sex;
        }
        
    public String getS_class() {
            
    return s_class;
        }
        
    public void setS_class(String s_class) {
            
    this.s_class = s_class;
        }
    }

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

    import com.stmcc.test.*;
    import java.sql.* ;
    import java.util.*
    public class StuManager {

        
    private static StuManager instance = new StuManager() ;
        
        
    private StuManager(){} ;
        
        
    public static StuManager getInstance(){
            
    return instance ;
        }
    //  oracle實現分頁的查詢語句
    //    select s_id, s_name, s_age, s_sex, s_class
    //    from
    //    (
    //      select rownum rn, s_id, s_name, s_age, s_sex, s_class
    //      from
    //        (select s_id, s_name, s_age, s_sex, s_class 
    //         from t_student order by s_id
    //        )where rownum <= 10
    //    )where rn > 5 ;
        public PageModel findStudentList(int pageNo, int pageSize){
            PageModel pageModel 
    = null ;
            StringBuffer sql 
    = new StringBuffer() ;
            sql.append(
    "select s_id, s_name, s_age, s_sex, s_class ")
                .append(
    "from")
                .append(
    "(")
                .append(
    "select rownum rn, s_id, s_name, s_age, s_sex, s_class ")
                .append(
    "from")
                .append(
    "(")
                .append(
    "select s_id, s_name, s_age, s_sex, s_class ")
                .append(
    "from t_student order by s_id")
                .append(
    ")")
                .append(
    "where rownum <= ?")
                .append(
    ")")
                .append(
    "where rn > ? ");
            Connection conn 
    = null ;
            PreparedStatement pstmt 
    = null ;
            ResultSet rs 
    = null ;
            
    try{
                conn 
    = DbUtil.getConnection() ;
                pstmt 
    = conn.prepareStatement(sql.toString()) ;
                pstmt.setInt(
    1, pageNo*pageSize) ;
                pstmt.setInt(
    2, (pageNo - 1)*pageSize) ;
                rs 
    = pstmt.executeQuery() ;
                List
    <Student> stuList = new ArrayList<Student>() ;
                
    while (rs.next()){
                    Student stu 
    = new Student() ;
                    stu.setS_id(rs.getString(
    "s_id")) ;
                    stu.setS_name(rs.getString(
    "s_name")) ;
                    stu.setS_age(rs.getString(
    "s_age")) ;
                    stu.setS_sex(rs.getString(
    "s_sex")) ;
                    stu.setS_class(rs.getString(
    "s_class")) ;
                    stuList.add(stu) ;
                }
                pageModel 
    = new PageModel() ;
                pageModel.setList(stuList) ;
                pageModel.setTotalRecords(getTotalRecords(conn)) ;
                pageModel.setPageSize(pageSize);
                pageModel.setPageNo(pageNo);
            }
    catch(Exception e){
                e.printStackTrace() ;
            }
    finally{
                DbUtil.close(rs) ;
                DbUtil.close(pstmt) ;
                DbUtil.close(conn) ;
            }
            
    return pageModel ;
        }
        
    /**
         * 取得總記錄數
         * 
    @param conn
         * 
    @return
         
    */
        
    private int getTotalRecords(Connection conn) 
        
    throws SQLException {
            String sql 
    = "select count(*) from t_student";
            PreparedStatement pstmt 
    = null;
            ResultSet rs 
    = null;
            
    int count = 0;
            
    try {
                pstmt 
    = conn.prepareStatement(sql);
                rs 
    = pstmt.executeQuery();
                rs.next();
                count 
    = rs.getInt(1);
            }
    finally {
                DbUtil.close(rs);
                DbUtil.close(pstmt);
            }
            
    return count;
        }
    }

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

    import java.util.* ;
    public class PageModel {

        
    //結果集
        private List list ;
        
        
    //查詢總記錄數
        private int totalRecords ;
        
        
    //每頁多少條數據
        private int pageSize ;
        
        
    //第幾頁
        private int pageNo ;
        
        
    /**
         * 總頁數
         * 
    @return
         
    */
        
    public int getTotalPages(){
            
    return (totalRecords + pageSize -1/ pageSize ;
        }
        
        
    /**
         * 取得首頁
         * 
    @return
         
    */
        
    public int getTopPageNo(){
            
    return 1 ;
        }
        
        
    /**
         * 上一頁
         * 
    @return
         
    */
        
    public int getPreviousPageNo(){
            
    if(pageNo <= 1){
                
    return 1 ;
            }
            
    return pageNo - 1 ;
        }
        
        
    /**
         * 下一頁
         * 
    @return
         
    */
        
    public int getNextPageNo(){
            
    if(pageNo >= getBottomPageNo()){
                
    return getBottomPageNo() ;
            }
            
    return pageNo + 1 ;
        }
        
        
    /**
         * 取得尾頁
         * 
    @return
         
    */
        
    public int getBottomPageNo(){
            
    return getTotalPages() ;
        }

        
    public List getList() {
            
    return list;
        }

        
    public void setList(List list) {
            
    this.list = list;
        }

        
    public int getTotalRecords() {
            
    return totalRecords;
        }

        
    public void setTotalRecords(int totalRecords) {
            
    this.totalRecords = totalRecords;
        }

        
    public int getPageSize() {
            
    return pageSize;
        }

        
    public void setPageSize(int pageSize) {
            
    this.pageSize = pageSize;
        }

        
    public int getPageNo() {
            
    return pageNo;
        }

        
    public void setPageNo(int pageNo) {
            
    this.pageNo = pageNo;
        }
    }

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

    <%@ page import="com.stmcc.test.util.*"%>
    <%@ page import="com.stmcc.test.*"%>
    <%@ page import="java.sql.*"%>
    <%@ page import="java.util.*"%>
    <html>
    <head><title>分頁展示</title></head>
    <%
        
    int pageNo = 1 ;
        
    int pageSize = 5 ;
        String pageNoString 
    = request.getParameter("pageNo") ;
        
    if(pageNoString != null){
            pageNo 
    = Integer.parseInt(pageNoString) ;
        }
        PageModel pageModel 
    = StuManager.getInstance().findStudentList(pageNo,pageSize) ;
    %>
    <script type="text/javaScript">
        function topPage() {
            window.self.location 
    = "student.jsp?pageNo=<%=pageModel.getTopPageNo()%>";
        }
        
        function previousPage() {
            window.self.location 
    = "student.jsp?pageNo=<%=pageModel.getPreviousPageNo()%>";
        }    
        
        function nextPage() {
            window.self.location 
    = "student.jsp?pageNo=<%=pageModel.getNextPageNo()%>";
        }
        
        function bottomPage() {
            window.self.location 
    = "student.jsp?pageNo=<%=pageModel.getBottomPageNo()%>";
        }
    </script>
    <body>
    <center>
      
    <table border="1">
      
    <tr>
          
    <td>學生編號</td>
          
    <td>學生姓名</td>
          
    <td>學生年齡</td>
          
    <td>學生性別</td>
          
    <td>學生班級</td>
      
    </tr>
      
    <%
          List stuList 
    = pageModel.getList() ;
          
    for(Iterator<Student> iter = stuList.iterator(); iter.hasNext();){
              Student stu 
    = iter.next() ;
      
    %>
      
    <tr>
          
    <td><%=stu.getS_id() %></td>
          
    <td><%=stu.getS_name() %></td>
          
    <td><%=stu.getS_age() %></td>
          
    <td><%=stu.getS_sex() %></td>
          
    <td><%=stu.getS_class() %></td>
      
    </tr>
      
    <%
          }
      
    %>
      
    <tr><td colspan="5">
          共
    &nbsp;<%=pageModel.getTotalPages() %>&nbsp;頁&nbsp;&nbsp;&nbsp;&nbsp;
          當前第
    &nbsp;<%=pageModel.getPageNo() %>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
      
    <input type="button" value="首頁" onClick="topPage()">
      
    <input type="button" value="上一頁" onClick="previousPage()">
      
    <input type="button" value="下一頁" onClick="nextPage()">
      
    <input type="button" value="尾頁" onClick="bottomPage()">
      
    </td></tr>
      
    </table>
    </center>
    </body>
    </html>
    posted on 2012-01-31 13:25 RoyPayne 閱讀(2248) 評論(2)  編輯  收藏 所屬分類: jsp相關

    評論:
    # re: jsp+oracle實現簡單的分頁[未登錄] 2013-04-18 09:56 | 1
    請問,帶參數怎么做分頁  回復  更多評論
      
    # re: jsp+oracle實現簡單的分頁[未登錄] 2013-04-18 10:46 | 1
    參數問題解決。  回復  更多評論
      
    主站蜘蛛池模板: 亚洲五月六月丁香激情| 怡红院亚洲红怡院在线观看| 一本岛高清v不卡免费一三区| 亚洲乱码在线卡一卡二卡新区| 免费国产在线观看不卡| 日本免费中文字幕| 啦啦啦www免费视频| 免费A级毛片无码无遮挡内射| 亚洲一久久久久久久久| jlzzjlzz亚洲乱熟在线播放| 日本免费人成视频在线观看| 亚洲日韩一区二区三区| 亚洲精品无码高潮喷水在线| 免费精品国产自产拍在线观看图片| 国产亚洲漂亮白嫩美女在线| 亚洲福利在线观看| 亚洲Av无码乱码在线znlu| 30岁的女人韩剧免费观看| 国产亚洲蜜芽精品久久| 亚洲最大视频网站| 亚洲中文字幕在线观看| 国产成人3p视频免费观看 | 亚洲综合色一区二区三区| jlzzjlzz亚洲乱熟在线播放| 成人免费午夜在线观看| 热re99久久6国产精品免费| 日本一区二区三区在线视频观看免费 | 亚洲黄色免费电影| yy6080亚洲一级理论| 五月婷婷在线免费观看| 亚洲一区二区三区免费| 亚洲人成网亚洲欧洲无码| 亚洲国产高清视频| 永久亚洲成a人片777777| 精品剧情v国产在免费线观看| 3d成人免费动漫在线观看| 免费久久人人爽人人爽av| 亚洲免费在线观看| 免费福利资源站在线视频| 亚洲欧洲精品成人久久曰| 亚洲精品午夜在线观看|