亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? gdpage.java

?? 本書由淺入深、循序漸進地介紹了MVC的體系結構和如何構建一個基于MVC的Web框架
?? JAVA
字號:
package com.gd.mvc.util;

import java.sql.Connection;
import java.sql.ResultSetMetaData;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.sql.rowset.CachedRowSet;

import com.gd.jdbc.GdPageCachedRowSet;
import com.gd.jdbc.impl.GdDbConnection;

public class GdPage {
	public GdPageCachedRowSet pageCrs = null;
    Map[] map = null;
    private List list;
    private String action = "";
    private int row;
    private String page;
    protected String sql;

    /**
     * 構造函數
     * @param request
     * @param sql,要分頁查詢的sql語句
     * @param row,每頁要現實的筆數
     * @throws Exception 
     */
    public GdPage(HttpServletRequest request, String sql, String row)  {
        //獲取連接
        GdDbConnection conn = new GdDbConnection(this);
        row = request.getParameter("gd_row") == null ? row : (String) request.getParameter("gd_row");
        //獲取設定每頁顯示筆數
        this.row = Integer.parseInt(row);
        //表示獲取要調轉到的頁面
        page = request.getParameter("gd_jumpPage") == null ? "" : (String) request.getParameter("gd_jumpPage");
        //表示跳轉的時候要查詢的sql
        String gd_querSql = request.getParameter("gd_querSql") == null ? "" : (String) request.getParameter("gd_querSql");
        //是否重新設定了sql
        String gd_resetSql = request.getAttribute("gd_resetSql") == null ? "" : (String) request.getAttribute("gd_resetSql");
        //如果重新設定了sql,則page為空,表示從第一頁開始
        if ("true".equals(gd_resetSql))
            page = "";
        //如果跳轉的時候要查詢的sql,重新設定了sql,則送給數據庫的為從參數中傳來的sql
        if ("".equals(gd_querSql) || "true".equals(gd_resetSql)) {
        	this.sql = sql;
        } else {
        	this.sql = gd_querSql;//否則使用頁面隱藏的sql
        }
        //開始進入數據庫進行查詢
        try {
            if (!"".equals(this.sql)) {
            	pageCrs = new GdPageCachedRowSet(conn.getConnection(this), request, this.sql);
            	//設定每頁顯示的筆數
            	pageCrs.setPageSize(Integer.parseInt(row));
            	//假如指定了調整的頁碼,則調轉到該頁
                if (!"".equals(page))
                    gotoPage(page);
                map = queryAllMap(pageCrs.getCachedRowSet());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    
    public GdPage(HttpServletRequest request, Connection conn, String sql, String row) {
    	row = request.getParameter("gd_row") == null ? row : (String) request.getParameter("gd_row");
        //獲取設定每頁顯示筆數
        this.row = Integer.parseInt(row);
        //表示獲取要調轉到的頁面
        page = request.getParameter("gd_jumpPage") == null ? "" : (String) request.getParameter("gd_jumpPage");
        //表示跳轉的時候要查詢的sql
        String gd_querSql = request.getParameter("gd_querSql") == null ? "" : (String) request.getParameter("gd_querSql");
        //是否重新設定了sql
        String gd_resetSql = request.getAttribute("gd_resetSql") == null ? "" : (String) request.getAttribute("gd_resetSql");
        //如果重新設定了sql,則page為空,表示從第一頁開始
        if ("true".equals(gd_resetSql))
            page = "";
        //如果跳轉的時候要查詢的sql,重新設定了sql,則送給數據庫的為從參數中傳來的sql
        if ("".equals(gd_querSql) || "true".equals(gd_resetSql)) {
        	this.sql = sql;
        } else {
        	this.sql = gd_querSql;//否則使用頁面隱藏的sql
        }
        //開始進入數據庫進行查詢
        try {
            if (!"".equals(this.sql)) {
            	pageCrs = new GdPageCachedRowSet(conn, request, this.sql);
            	//設定每頁顯示的筆數
            	pageCrs.setPageSize(Integer.parseInt(row));
            	//假如指定了調整的頁碼,則調轉到該頁
                if (!"".equals(page))
                    gotoPage(page);
                map = queryAllMap(pageCrs.getCachedRowSet());
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    //設定頁面表單的action動作
    public void setAction(String action) {
        this.action = action;
    }
    //獲取頁面表單的action動作
    public String getAction() {
        return this.action;
    }
    /**
     * 獲取分頁查詢的結果
     * 
     * @return Map[]
     */
    public Map[] getDataMaps() {
        return this.map;
    }
    /**
     * 返回當頁查詢后的筆數
     * 
     * @return int
     */
    public int getPageRowsCount() {
        return pageCrs.getPageRowsCount();
    }
    /**
     * 返回顯示內容
     * 
     * @return String
     */
    public String getBtnHtml() {
    	//隱藏2個字段,用來存儲要調轉的頁面和要查詢的sql語句
        StringBuffer sb = new StringBuffer();
        sb.append("<table width='100%' cellspacing='0' cellpadding='0' border=0><tr><td>");
        sb.append("<input type='hidden' name='gd_jumpPage' value='" + page
                + "'>");
        sb.append("<input type='hidden' name='gd_querSql' value=\"" + sql
                + "\">");
        //sql語句為空,則返回空
        if ("".equals(this.sql))
            return "";
        //開始組裝分頁按鈕
        sb.append("<A HREF='javascript:gotoPage(1)'>首頁</A>");
		if (1 == pageCrs.getPageCount()) {
		sb.append("&nbsp;上一頁&nbsp;");
		sb.append("&nbsp;下一頁&nbsp;");
		} else if (pageCrs.getCurPage() == 1) {
		sb.append("&nbsp;上一頁&nbsp;");
		sb.append("<A HREF='javascript:gotoPage("
		        + (pageCrs.getCurPage() + 1)
		        + ")'>&nbsp;下一頁&nbsp;</A>");
		} else if (pageCrs.getCurPage() == pageCrs.getPageCount()) {
		sb.append("<A HREF='javascript:gotoPage("
		        + (pageCrs.getCurPage() - 1)
		        + ")'>&nbsp;上一頁&nbsp;</A>");
		sb.append("&nbsp;下一頁&nbsp;");
		} else {
		sb.append("<A HREF='javascript:gotoPage("
		        + (pageCrs.getCurPage() - 1)
		        + ")'>&nbsp;上一頁&nbsp;</A>");
		sb.append("<A HREF='javascript:gotoPage("
		        + (pageCrs.getCurPage() + 1)
		        + ")'>&nbsp;下一頁&nbsp;</A>");
		}
		
		sb.append("<A HREF='javascript:gotoPage("
		        + pageCrs.getPageCount() + ")'>&nbsp;尾頁&nbsp;</A>");
        sb.append("跳至第 ");
        sb.append("\n <select name='").append("gd_pageNo").append(
                "' onchange='javascript:gotoPage(this.value)'>\n");
        for (int i = 0; pageCrs != null && i < pageCrs.getPageCount(); i++)
            if (pageCrs.getCurPage() == i + 1)
                sb.append("<option value='").append(i + 1).append(
                        "' selected>").append(i + 1).append("\n");
            else
                sb.append("<option value='").append(i + 1).append("'>")
                        .append(i + 1).append("\n");

        sb.append("</select>");

        sb.append(" ");
        sb.append("\n <input type='text' size='2' name='").append(
                "gd_pageNoTxt").append("' value='1' >頁\n");
        sb
                .append("<A HREF='javascript:gotoPage(form1.gd_pageNoTxt.value)'>GO&nbsp;</A>");

        sb.append("每頁行數 ");
        sb.append("\n <select name='").append("gd_row").append("' >\n");
        sb.append("<option value='").append(row).append("'>").append(row)
                .append("\n");
        int str[] = {5, 10, 15, 20, 30, 50};
        for (int i = 0; i < str.length; i++)
            if (this.row == str[i])
                sb.append("<option value='").append(str[i]).append(
                        "' selected>").append(str[i]).append("\n");
            else
                sb.append("<option value='").append(str[i]).append("'>").append(str[i]).append("\n");

        sb.append("</select>");
        //生成script腳本
        sb.append("<script>");
        if ("".equals(this.action)) {
            sb.append("function gotoPage(pagenum){if (isNaN(pagenum)) {alert('每頁必須是數字');}else {document.form1.gd_jumpPage.value = pagenum;var f = document.form1;var ot = f.target;var oa = f.action;f.target='_self';f.submit();f.target=ot;f.action=oa;return ;}}");
        } else {
            sb.append("function gotoPage(pagenum){if (isNaN(pagenum)) {alert('每頁必須是數字');}else {document.form1.gd_jumpPage.value = pagenum;var f = document.form1;var ot = f.target;var oa = f.action;f.target='_self';f.action='"
                   + this.action
                   + "'; f.submit();f.target=ot;f.action=oa;return ;}}");
        }
        sb.append("</script>");
        sb.append("</td></tr></table>");

        return sb.toString();
    }
    /**
     * 轉到指定頁
     */
    private void gotoPage(String page) {
    	pageCrs.gotoPage(Integer.parseInt(page));
    }
    /**
     * 該方法用來將獲取的欄位名稱和欄位內容相對應
     * 
     * @param rs
     * @return Map
     */
    private Map getMapFromRs(CachedRowSet rs) throws SQLException  {
        Map map = new HashMap();
        List columnNamesList = new ArrayList();
        int columnCount = 0;
        try {
        	//獲取ResultSetMetaData的字段數目
        	columnCount = rs.getMetaData().getColumnCount();
        	//獲取每個字段的名稱
        	columnNamesList = setColumnNameByMeta(rs.getMetaData());
            for (int i = 0; i < columnCount; i++) {
            	//將字段名和對應的值存入Map
            	map.put((String) columnNamesList.get(i), rs.getString(i + 1));
            }
        } catch (SQLException e) {
        	throw new SQLException("執行getMapFromRS失敗" + e);
        } finally {
        	return map;
        }
    }
    
    /**
     * 該方法用來獲取處理數據庫中的欄位名和欄位數目
     * @param rsMetadata 
     * @return List
     */
    private List setColumnNameByMeta(ResultSetMetaData rsMetadata) throws SQLException {
        List columnNamesList = new ArrayList();
        try {
        	//獲取ResultSetMetaData的字段數目
            for (int i = 0; i < rsMetadata.getColumnCount(); i++) {
            	columnNamesList.add(rsMetadata.getColumnName(i + 1));//獲取每個字段的名稱
            } 
        } catch (SQLException e) {
        	throw new SQLException("執行setColumnNameByMeta失敗" + e);
        } finally {
        	return columnNamesList;
        }
    }
    /**
	 * 用來獲取多筆數據結果集
	 * @param sql
	 * @return Map[]
	 * @throws SQLException
	 */
	public Map[] queryAllMap(CachedRowSet crs) throws SQLException {
		Map[] map = null;
		CachedRowSet rs = null;
        List list = new ArrayList();
        try {
        	//通過getAllCachedRowSet獲取rs,然后循環將每筆轉換為map
            for (rs = crs; rs.next();) {
            	list.add(getMapFromRs(rs));//將每筆轉換為map
            }
        } catch (SQLException e) {
        	throw new SQLException("執行queryAllMap失敗" + sql + e);
        } finally {
            if (rs != null) {
            	rs.close();//關閉rs
            }
            if (list.size() != 0) {
                map = new Map[list.size()];
                list.toArray(map);//將list轉換為map數組
            }
            return map;  
        }
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品影视网| 欧美在线观看视频一区二区| 91麻豆国产精品久久| 91麻豆精品国产| 亚洲欧美日韩小说| 国产一二精品视频| 欧美一区在线视频| 亚瑟在线精品视频| 色婷婷久久综合| 国产精品久久久久久久久果冻传媒 | 麻豆一区二区三| 91成人国产精品| 亚洲女同女同女同女同女同69| 国产精品一区在线| 精品乱人伦一区二区三区| 图片区小说区国产精品视频| 在线观看视频一区二区| 亚洲女同女同女同女同女同69| 国产高清一区日本| 欧美精品一区二区三区高清aⅴ | 国产午夜精品一区二区| 美女精品自拍一二三四| 日韩欧美国产不卡| 久久电影网电视剧免费观看| 欧美一区二区不卡视频| 免费观看日韩电影| 欧美一区二区三级| 美腿丝袜在线亚洲一区| 日韩精品中文字幕一区二区三区 | 波多野结衣在线aⅴ中文字幕不卡| 26uuu久久综合| 激情综合色综合久久| 日韩欧美一区二区免费| 美女视频黄a大片欧美| 欧美变态口味重另类| 狠狠色丁香九九婷婷综合五月| 欧美不卡一区二区| 国产成人a级片| 亚洲欧洲日产国码二区| 99久久国产免费看| 亚洲最大成人网4388xx| 欧美日韩亚洲综合在线 | 欧美日本高清视频在线观看| 亚洲国产精品一区二区久久| 在线成人高清不卡| 狠狠色综合播放一区二区| 久久午夜色播影院免费高清| 不卡的av中国片| 亚洲国产综合人成综合网站| 91精品国产综合久久久蜜臀图片| 美国一区二区三区在线播放| 国产亚洲精久久久久久| 色天天综合久久久久综合片| 日本vs亚洲vs韩国一区三区二区 | 午夜国产不卡在线观看视频| 欧美一级欧美三级| 国产a区久久久| 一区二区三区免费| 欧美不卡在线视频| 色婷婷精品久久二区二区蜜臂av | 亚洲成人免费视| 精品久久久久久久久久久久久久久久久 | 青青草国产精品97视觉盛宴| 久久久久久久久蜜桃| 在线视频中文字幕一区二区| 久久国产视频网| 亚洲欧美激情视频在线观看一区二区三区 | 欧美日韩精品欧美日韩精品| 精彩视频一区二区三区| 亚洲精品成人悠悠色影视| 日韩精品中文字幕一区| 色94色欧美sute亚洲线路一ni| 日韩高清在线电影| 中文字幕一区二区三区四区| 3d动漫精品啪啪| 91网站黄www| 国产精品正在播放| 五月天网站亚洲| 国产精品成人午夜| 26uuu国产电影一区二区| 91搞黄在线观看| 丁香天五香天堂综合| 无码av中文一区二区三区桃花岛| 国产精品成人免费在线| 亚洲精品一区二区三区在线观看| 日本韩国欧美在线| 国产成a人无v码亚洲福利| 日本欧美一区二区在线观看| 一个色妞综合视频在线观看| 国产欧美日韩另类一区| 日韩欧美一级二级三级久久久| 日本道免费精品一区二区三区| 激情综合网av| 精品在线一区二区三区| 午夜精品久久久久久久久| 一区2区3区在线看| 亚洲色图清纯唯美| 国产精品久久午夜夜伦鲁鲁| 久久久www免费人成精品| 日韩免费看的电影| 欧美群妇大交群的观看方式| 在线观看亚洲a| 91久久一区二区| 日本高清免费不卡视频| 色综合久久久久久久久久久| 91丨九色porny丨蝌蚪| 成人av电影在线网| 福利视频网站一区二区三区| 国产mv日韩mv欧美| 成人av网站在线| 91啪在线观看| 91麻豆国产福利在线观看| 在线视频综合导航| 欧美日韩亚洲另类| 91精品欧美久久久久久动漫 | 欧美色图天堂网| 欧美亚洲日本一区| 欧美日韩在线播| 69久久99精品久久久久婷婷| 欧美日韩国产一级| 91麻豆精品国产91久久久 | 亚洲精品成a人| 亚洲猫色日本管| 亚洲自拍偷拍网站| 五月天欧美精品| 精品在线一区二区| 成人永久aaa| 99精品视频在线播放观看| 色妞www精品视频| 337p亚洲精品色噜噜| 日韩一区二区免费电影| 国产色产综合色产在线视频| 国产精品初高中害羞小美女文| 亚洲激情网站免费观看| 日精品一区二区三区| 韩国av一区二区三区四区| 成人免费看黄yyy456| 色哟哟一区二区三区| 欧美日韩国产片| 久久综合久色欧美综合狠狠| 中文字幕一区二区三区在线观看 | 一色屋精品亚洲香蕉网站| 6080国产精品一区二区| 欧美变态凌虐bdsm| 国产精品女同一区二区三区| 一区二区三区色| 国产一区二区在线观看免费| 国产69精品一区二区亚洲孕妇 | 亚洲乱码国产乱码精品精98午夜 | av影院午夜一区| 欧美剧情片在线观看| 亚洲国产精品ⅴa在线观看| 亚洲精品视频一区| 麻豆精品在线视频| 99久久99久久久精品齐齐| 69精品人人人人| 国产精品传媒入口麻豆| 蜜桃久久久久久| 欧美在线观看视频在线| 国产婷婷一区二区| 亚洲bt欧美bt精品777| 成人黄色一级视频| 欧美成人三级在线| 亚洲综合网站在线观看| 成人永久免费视频| 日韩美一区二区三区| 亚洲高清视频在线| www.欧美亚洲| 欧美成人在线直播| 亚洲va中文字幕| 91天堂素人约啪| 久久精品视频一区二区| 日本不卡一区二区三区高清视频| 色综合久久久久久久久| 国产精品色在线| 国产一区二区三区在线看麻豆| 欧美日韩黄色影视| 亚洲国产日产av| 色噜噜狠狠成人中文综合| 中文字幕不卡在线| 国产麻豆精品久久一二三| 欧美电视剧免费全集观看| 丝袜美腿亚洲色图| 精品视频一区三区九区| 一区二区成人在线| 91丝袜美腿高跟国产极品老师| 国产精品久久久久久一区二区三区| 久草在线在线精品观看| 欧美一区二区视频网站| 天堂久久久久va久久久久| 欧美日韩一二三| 爽好久久久欧美精品| 欧美日本一区二区三区四区| 亚洲高清免费一级二级三级| 欧美日韩不卡在线| 视频一区国产视频| 91.com视频| 久久国内精品自在自线400部| 日韩欧美一二三| 精彩视频一区二区三区|