java學習

          java學習

           

          不同數(shù)據(jù)庫分頁的語句

          /** * 通過數(shù)據(jù)庫類型處理翻頁查詢語句 * 注釋:如果框架當前不支持此種數(shù)據(jù)庫分頁查詢,則返回一個空值字符串。 * * @param strSql 待執(zhí)行SQL語句 * @param start 開始行數(shù) * @param pageCount 每頁行數(shù) * */ private static String dealSqlByDBType(String dbType,String strSql,int start,int pageCount) { if(dbType==null)return ""; String retSql = ""; if(dbType.equals("mysql")) { //MYSQL數(shù)據(jù)庫采用limit關鍵字進行分頁 int startItem = start -1;if(startItem<0)startItem = 0; retSql = strSql + " limit " + startItem + "," + pageCount; } else if(dbType.equals("oracle")) { //ORACLE數(shù)據(jù)庫采用ROWNUM控制分頁 int startItem = start; if(startItem<=0){startItem = 0;} int endItem = startItem + pageCount; retSql = "SELECT * FROM (" + "SELECT A.*,ROWNUM RN FROM(" + strSql + ") A WHERE ROWNUM<="+ endItem +") WHERE RN >"+startItem; } else if(dbType.equals("db2")) { //DB2數(shù)據(jù)庫采用ROWNUMBER() OVER()函數(shù)進行分頁 //其中OVER()函數(shù)中必須包含排序字段,此處用“1”代替 int startItem = start -1;if(startItem<0)startItem = 0; int endItem = startItem + pageCount; retSql = "SELECT * FROM (" + "SELECT B.*, ROWNUMBER() OVER(1) AS RN FROM (" + strSql + ") AS B )AS A WHERE A.RN <= "+ endItem +" AND A.RN >= "+ startItem; } else if(dbType.equals("sqlserver2005")) { //SQLSERVER2005采用ROW_NUMBER()函數(shù)進行分頁 //其中OVER()函數(shù)中必須包含排序字段,此處用“1”代替 int startItem = start -1;if(startItem<0)startItem = 0; int endItem = startItem + pageCount; retSql = "SELECT * FROM (" + "SELECT B.*, ROW_NUMBER() OVER(1) RN FROM (" + strSql + ") B )A WHERE A.RN <= "+ endItem +" AND A.RN >= "+ startItem; } else if(dbType.equals("derby")) { //通過OFFSET等關鍵字進行翻頁(尚未經(jīng)過測試) int startItem = start -1;if(startItem<0)startItem = 0; //int endItem = startItem + pageCount; retSql = strSql + " OFFSET "+ startItem +" ROWS" + " FETCH NEXT "+ pageCount +" ROWS ONLY"; } return retSql; }

          posted on 2016-09-22 10:05 楊軍威 閱讀(148) 評論(0)  編輯  收藏


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


          網(wǎng)站導航:
           

          導航

          統(tǒng)計

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 隆尧县| 山丹县| 湘潭县| 青铜峡市| 榆中县| 宁河县| 罗源县| 陵川县| 新竹市| 扬州市| 花莲市| 牡丹江市| 衡水市| 兖州市| 来凤县| 五常市| 望都县| 容城县| 阿坝县| 丹东市| 石林| 尼勒克县| 太原市| 沽源县| 青海省| 司法| 安岳县| 富蕴县| 泾阳县| 黄石市| 襄垣县| 曲靖市| 通化县| 吉首市| 特克斯县| 乡宁县| 扬中市| 余姚市| 永顺县| 石河子市| 三明市|