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}用来读取查询命令返回的数据/记录数。但我总是通过一个查询命令 ( LIMIT a, n) 获得有限数量的记录,并且想计算数据库中有多少条记录,而无需读取它们并将它们全部保存在变量中。

4

1 回答 1

1

除非出于某种原因需要使用存储过程,否则将 select 语句放在 JSTL 查询中可能同样容易,从而为您提供不需要存储过程的结果。这似乎很简单。关键是确保在查询中使用 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>
于 2013-05-28T16:07:09.240 回答