JSTLのSQLタグライブラリ

JSTLのSQLタグライブラリを使うと、JSPの中でSQLを定義し、実行することができます。
簡単なサンプルです。

<%@ taglib prefix="c"   uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="sql" uri="http://java.sun.com/jsp/jstl/sql" %>
<sql:setDataSource dataSource="jdbc/sadb" />
<sql:query var="rset">
SELECT * FROM SHITEN WHERE AREA_CODE = ? ORDER BY SHITEN_CODE
  <sql:param>3</sql:param>
</sql:query>

<table border="1" align="center" valign="center">
<c:forEach var="e" items="${rset.rows}" varStatus="loop">
  <tr>
  <td>${loop.count}</td>
  <td>${e.SHITEN_CODE}</td>
  <td>${e.SHITEN_NAME}</td>
  <td>${e.AREA_CODE}</td>
  <td>${e.ADDRESS}</td>
  <td>${e.EMPLOYEE_NUM}</td>
  </tr>
</c:forEach>
</table>

SELECT文を発行するには、sql:queryタグを使います。
SQLは、このタグのsql属性に書くこともできますし、 このタグが囲むブロックの中に書くこともできます。
またバインドパラメータは上のようにsql:paramタグで定義します。 DATE型のパラメータ用に、sql:dateParamというタグもあります。
ちなみに、このSQLの中に不等号(<=など)を書くには、HTMLエスケープは必要か? 試してみたところ、HTMLエスケープは不要で、普通に不等号文字を書けばよいようです。
データベースの更新を行うには、sql:updateタグを使います。 また、複数のSQLを順番に実行して更新を行う際には、 sql:transactionタグも使うことになると思います。

Server Side Java Index Top

(first uploaded 2009/07/04 last updated 2013/06/02, URANO398)