寫的通用分頁代碼:
SQL存儲過程代碼:
CREATE proc page ( @table_name varchar(100),--表名 @count int,--每頁顯示好多行 @page int,--當前頁數 @table_id varchar(100),--表的主鍵 @sqlWhere varchar(1000),--過濾條件 @sqlOrder varchar(1000),--排序條件 @sumCount int output--返回參數,返回總頁數 ) as declare @sqlScript nvarchar(4000) select @sumCount = 0 if @sqlWhere is not null and @sqlWhere <> '' begin select @sqlScript = 'select @sumCount=count(*) from '+@table_name + ' where ' + @sqlWhere end else begin select @sqlScript = 'select @sumCount=count(*) from '+@table_name end execute sp_executesql @sqlScript,N'@sumCount int output',@sumCount output--得到總行數 --select @sumCount if @sumCount%@count<>0 select @sumCount = @sumCount / @count + 1--得到總頁數 else select @sumCount = @sumCount / @count select @page = @page * @count--過濾的行數 select @sqlScript = 'select top '+cast(@count as varchar)+' * from ' + @table_name + ' where ' + @table_id + ' not in (select top ' + cast(@page as varchar) + ' ' +@table_id+ ' from '+@table_name+' '+case when @sqlWhere is not null and @sqlWhere<>'' then ' where ' +@sqlWhere else '' end+isnull(@sqlOrder,'')+' ) ' + case when @sqlWhere is not null and @sqlWhere<>'' then ' and ' + @sqlWhere else '' end+isnull(@sqlOrder,'') exec(@sqlScript) GO
調用存儲過程方法:
//獲得某城市下,滿足貢獻度需求的迷宮任務列表
public ArrayList getMiGongRenWuList(String table_name,int count,int page,String table_id,String sqlWhere,int []out_print){ ArrayList migong_list = new ArrayList(); Connection con = null; try { con = dbMain.getConnection(); con.setAutoCommit(false); CallableStatement cstm = con.prepareCall( "{call page(?,?,?,?,?,?,?)}"); cstm.setString(1,table_name); cstm.setInt(2,count); cstm.setInt(3,page); cstm.setString(4,table_id); cstm.setString(5,sqlWhere); cstm.setString(6,""); cstm.registerOutParameter(7,Types.INTEGER); ResultSet rs = cstm.executeQuery(); while(rs.next()){ migong_list.add(City_MiGongDAO.assembleCity_MiGong(rs)); } out_print[0] = Integer.parseInt(cstm.getObject(7).toString()); con.commit(); con.close(); } catch (ClassNotFoundException e) { e.printStackTrace(); } catch (SQLException e) { try { con.rollback(); con.close(); } catch (SQLException e1) { e1.printStackTrace(); } e.printStackTrace(); } return migong_list; }
SEVLET調用該方法:
int []out_page = {0}; ArrayList city_renwu_list = RenWu_MiGongDao.getMiGongRenWuList(table_name,16,page,table_id,sqlWhere,out_page);
JSP頁面:
<%if(request.getParameter("page")==null||(Integer.parseInt(request.getParameter("page").toString()) - 1)<0){%>上一頁<%}else{%><a href="<%=path%>/servlet/game/qiantai/migong/ShowMiGong?search_condition=<%= search_condition %>&radio_search=<%= radio_search %>&page=<%=request.getParameter("page")==null?(0 + 1):(Integer.parseInt(request.getParameter("page").toString()) - 1)%>">上一頁</a><%}%> <%if(sumPageCount>(request.getParameter("page")==null?(0 + 1):(Integer.parseInt(request.getParameter("page").toString()) + 1))){%><a href="<%=path%>/servlet/game/qiantai/migong/ShowMiGong?search_condition=<%= search_condition %>&radio_search=<%= radio_search %>&page=<%=request.getParameter("page")==null?(0 + 1):(Integer.parseInt(request.getParameter("page").toString()) + 1)%>">下一頁</a><%}else{%>下一頁<%}%>
寫在前面:2020年面試必備的Java後端進階面試題總結了一份複習指南在Github上,內容詳細,圖文並茂,有需要學習的朋友可以Star一下! GitHub地址:https://github.com/abel-max/Java-S
在Linux實操的過程中,你是否有過這些疑問: 如何提取日誌中含有關鍵字的指定行,上一行或上幾行? ln 做了符號鏈接,對符號鏈接進行權限修改,原文件是否會受到影響? Shell 腳本里有很多特殊符號,到底該怎麼用?網上流傳的
一致性協議有很多種,比如 Paxos,Raft,2PC,3PC等等,在這講一種協議,ZAB 協議,該協議應該是所有一致性協議中生產環境中應用最多的了。爲什麼?因爲它是爲 Zookeeper 設計的分佈式一致性協議! 1. 什麼是
Spring 早已成爲 Java 後端開發事實上的行業標準,無數的公司選擇 Spring 作爲基礎的開發框架,大部分Java 後端程序員在日常工作中也會接觸到 Spring ,因此,如何用好 Spring ,也就成爲 Java
第一種情況:在try和catch中有return,finally中沒有return,且finally中沒有對try或catch中要 return。這種情況,無論如何finally中的代碼塊都會執行,然後再執行try或者finall
題目描述 輸入一個整數數組,判斷該數組是不是某二叉搜索樹的後序遍歷的結果。如果是則輸出Yes,否則輸出No。假設輸入的數組的任意兩個數字都互不相同。 補充: 二叉查找樹(Binary Search Tree)又:二叉搜索樹,二叉排序樹,它
題目描述 輸入兩棵二叉樹A,B,判斷B是不是A的子結構。(ps:我們約定空樹不是任意一個樹的子結構) 思路:將B與A,A的左子樹,A的右子樹分別進行判斷,如果元素不相等返回 false ,運用遞歸直到A子樹爲空此時返回 false /*
前言: 之前用到二分查找的時候,都是自己手寫一個,雖然並不難,但是有的時候會忽略邊界條件,然後時間久了還會忘記,然後今天發現,Java其實已經實現了數組的二分查找,這裏就分析一下它的源碼 1:該方法在 Arrays.j
在Android中退出程序比較麻煩,尤其是在多個Activity的程序中,在2.2之前可以採用如下代碼退出程序: Java代碼 ActivityManager am = (ActivityManager)getSystemS
有初學者問interface和abstract類該怎樣選擇的問題,不扯麪試題那些,其實就一句話: 定義爲abstract類, 就是爲了定義較多的已實現方法好讓人繼承;繼承者就不用寫這麼多的實現了,可以直接拿來用; 定義爲interfa
困擾。。。 發現創建maven工程師pom.xml文件中編譯版本寫爲1.7了,修改後再沒出現。 <properties> <project.build.sourceEncoding>UTF-8</project.build.sou
一次在逛書店的時候,偶然發現這本書的,爲之驚豔,所以買了回來給學生看。過了幾個月,自己閒下來,也準備系統看看,雖然做了兩個Struts, Spring, Hibernate的項目,覺得知識還不是很系統。 1. servlet沒有
問題:mvn -e clean package 報錯log: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.1:co