0

私は学校で、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}しかし、私は常に 1 つのクエリ コマンド ( ) で限られた数のレコードを取得するためLIMIT a, n、データベース内のレコード数をカウントしたいと考えています。すべてのレコードを読み取って変数に保存する必要はありません。

4

1 に答える 1

1

なんらかの理由で sproc を使用する必要がない限り、ストアド プロシージャを使用せずに必要な結果を提供する JSTL クエリに select ステートメントを配置するのも同じくらい簡単かもしれません。これはかなり簡単に思えます。重要なのは、JSTL を使用して必要な値を参照できるように、クエリで AS 割り当てを使用していることを確認することです。

<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>
于 2013-05-28T16:07:09.240 に答える