java學(xué)習(xí)

          java學(xué)習(xí)

           

          不同數(shù)據(jù)庫(kù)分頁(yè)的語(yǔ)句

          /** * 通過(guò)數(shù)據(jù)庫(kù)類型處理翻頁(yè)查詢語(yǔ)句 * 注釋:如果框架當(dāng)前不支持此種數(shù)據(jù)庫(kù)分頁(yè)查詢,則返回一個(gè)空值字符串。 * * @param strSql 待執(zhí)行SQL語(yǔ)句 * @param start 開始行數(shù) * @param pageCount 每頁(yè)行數(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ù)庫(kù)采用limit關(guān)鍵字進(jìn)行分頁(yè) int startItem = start -1;if(startItem<0)startItem = 0; retSql = strSql + " limit " + startItem + "," + pageCount; } else if(dbType.equals("oracle")) { //ORACLE數(shù)據(jù)庫(kù)采用ROWNUM控制分頁(yè) 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ù)庫(kù)采用ROWNUMBER() OVER()函數(shù)進(jìn)行分頁(yè) //其中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ù)進(jìn)行分頁(yè) //其中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")) { //通過(guò)OFFSET等關(guān)鍵字進(jìn)行翻頁(yè)(尚未經(jīng)過(guò)測(cè)試) 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) 評(píng)論(0)  編輯  收藏


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


          網(wǎng)站導(dǎo)航:
           

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿

          隨筆檔案

          搜索

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          主站蜘蛛池模板: 谷城县| 慈溪市| 青岛市| 禄丰县| 菏泽市| 南漳县| 前郭尔| 太和县| 滕州市| 宜川县| 岗巴县| 甘谷县| 江川县| 汶川县| 锦屏县| 嘉鱼县| 扎囊县| 汉寿县| 张家港市| 太谷县| 武安市| 搜索| 泸西县| 松溪县| 台东市| 浠水县| 莎车县| 颍上县| 井研县| 宣武区| 衢州市| 阿坝县| 寿阳县| 南岸区| 萨嘎县| 博湖县| 伊宁市| 子洲县| 得荣县| 独山县| 阳江市|