2013-05-28 6 views
0

난 당신이 JSP와 MySQL의 데이터베이스와 JSTL-SQL 태그 라이브러리에 대한 쿼리를 실행할 수 있습니다 학교에서 배웠다.
는이를 위해 나는 쓰기 :
<sql:query var="results" dataSource="${datasource}"> SELECT * FROM table WHERE name='xy' </sql:query>저장 프로 시저

지금 내가 MySQL의 InnoDB의 데이터베이스에 저장 프로 시저를 (COUNT(*), SUM(datafield), ...)을 실행해야합니다.

이렇게하고 SQL 태그로 결과를 읽는 방법이 있습니까?

은 BTW : 나는 쿼리-명령에 의해 반환 된 데이터/레코드 수를 읽기 위해 ${results.rowCount}를 사용할 수 있다는 것을 알고있다. 그러나 나는 하나의 질의 명령 (LIMIT a, n)으로 항상 제한된 수의 레코드를 가져 와서 변수를 읽고 저장하지 않고 데이터베이스에있는 레코드 수를 계산하려고합니다.

답변

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> 
+0

감사합니다! 'AS 카운트'는 내가 필요한 것입니다. :디 – johk95