簡體   English   中英

帶有JSTL的存儲過程 <sql:query> 標簽

[英]Stored Procedures with JSTL's <sql:query> tag

我在學校了解到,您可以使用JSP和JSTL-SQL標記庫在MySQL數據庫上執行查詢。
為此,我寫:
<sql:query var="results" dataSource="${datasource}"> SELECT * FROM table WHERE name='xy' </sql:query>

現在,我必須在MySQL InnoDB數據庫上執行一個存儲過程( COUNT(*)SUM(datafield) ,...)。

有沒有辦法做到這一點,並用sql標記讀取結果?

順便說一句:我知道我可以使用${results.rowCount}來讀取查詢命令返回的數據/記錄的數量。 但是我總是使用一個查詢命令( LIMIT a, n )獲得有限數量的記錄,並且想要計算數據庫中有多少記錄,而不必讀取所有記錄並將其保存在變量中。

將select語句放入JSTL查詢中可能很容易,因為它無需存儲過程即可為您提供所需的結果,除非出於某種原因需要使用sproc。 這似乎很簡單。 關鍵是要確保在查詢中使用AS分配,以便可以使用JSTL引用要引用的值。

<sql:query var="results" dataSource="${datasource}">
    SELECT COUNT(field) AS count, SUM(otherField) AS sum FROM table WHERE name='xy'
</sql:query>

<c:forEach items="${results.rows}" var="result">
    ${result.count} : ${result.sum}
</c:forEach>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM