データベースに対して問合せを行います。
構文
構文1: ボディ・コンテンツなし
構文2: ボディに問合せ属性を指定
構文3: ボディに問合せとオプションの問合せパラメータを指定
ボディ・コンテンツ
JSP。JSPコンテナがボディ・コンテンツを処理した後、アクションがボディ・コンテンツを切り捨ててさらに処理します。
属性
http://www.jcp.org/aboutJava/communityprocess/first/jsr052/index.html
にある『JavaServer Pages Standard Tag Library 1.0 Specification』の10.9項を参照してください。
制約
<sql:transaction>
内にネストすることはできません。
maxRowsは、-1以上とする必要があります。
NULLおよびエラーの処理
説明
<sql:query>
アクションはデータベースに対して問合せを行い、var属性およびscope属性で指定したスコープ変数に、データ行を含む単一の結果セットを格納して返します。
問合せで結果が生成されなかった場合、空のResultオブジェクト(サイズはゼロ)が返されます。
SQL問合せ文は、sql属性で、またはアクションのボディ・コンテンツに指定できます。
問合せ文には、JDBC PreparedStatementパラメータを示すパラメータ・マーカー(?)を含めることができます。パラメータ・マーカーの値は、<sql:param>などのネストされたパラメータ・アクション(10.7項を参照)によって指定する必要があります。<sql:query>
アクションはSQLExecutionTagインタフェースを実装し(http://www.jcp.org/aboutJava/communityprocess/first/jsr052/index.html
にある『JavaServer Pages Standard Tag Library 1.0 Specification』の10.10項を参照)、カスタム・パラメータ・アクションによるパラメータ値の指定を可能にします。
maxRowsとstartRow
問合せ結果に含まれる最大行数は、特定の<sql:query>
アクションのmaxRows属性、または構成設定javax.servlet.jsp.jstl.sql.maxRowsで指定することができます。http://www.jcp.org/aboutJava/communityprocess/first/jsr052/index.html
にある『JavaServer Pages Standard Tag Library 1.0 Specification』の2.8項および10.12項を参照してください。maxRows属性は構成設定より優先されます。値が-1の場合、最大行数は制限されません。
startRow属性を使用して、返されるResultオブジェクトの先頭行のインデックスを指定できます。たとえば、10という値を指定した場合、返されるResultオブジェクトはインデックス10の行から始まります(元の問合せ結果セットの0から9の行はスキップされます)。元の問合せ結果セットの残りの行はすべて含まれます。
startRowとmaxRowsの両方を指定した場合、最大でstartRow + maxRowsの数の行がデータベースから取得されます。startRowより前の行はすべて破棄され、残りの行(startRowからstartRow + maxRowsまで)が結果に含まれます。
startRowを使用する場合、問合せにorder by句を指定しないかぎり、行が返される順序はRDBMS実装によって異なりますので注意してください。
maxRowsとstartRowを使用すれば、リソース集中型の問合せを防止し、大規模な結果セットの先頭行に効率的にアクセスすることができます。また、startRowを前のページよりmaxRowsだけ増やすことで、大規模な問合せ結果を簡単にページごとに表示できます。
接続の取得および解放
<sql:query>
が<sql:transaction>
アクション内にネストされている場合、Connectionオブジェクトは、データベースへのアクセスを管理している親の<sql:transaction>
から取得されます。
<sql:query>がネストされていない場合、データベースへのアクセスは10.2項に記載されたアルゴリズムに従って実行されます。Connectionオブジェクトは、<sql:transaction>アクションが完了する前に取得および解放されます。
注意: JSTL 1.1では、Java Servlet 2.4およびJavaServer Pages 2.0の仕様をサポートするJSPコンテナが必要です。JSTL 1.0仕様の実装には、Java Servlet 2.3およびJavaServer Pages 1.2の仕様をサポートするJSPコンテナが必要です。
JSTLタグの状況依存ヘルプを提供するため、JSTLタグ・ライブラリのドキュメントがApache Software Foundation(http://www.apache.org/)で作成され、JDeveloperに含まれています。また、JSTLタグおよび属性の説明を含む『JavaServer Pages Standard Tag Library 1.0 and 1.1 Specifications』を次のWebサイトからダウンロードできます。
http://www.jcp.org/aboutJava/communityprocess/final/jsr052/index2.html
JSTLの詳細は、次の外部リファレンスを参照してください。
『Java Sun JSTL Resources』ページ:
http://java.sun.com/products/jsp/jstl/
JDeveloperのJSTLタグ・ライブラリについて
リファレンス: JavaServer Pages標準タグ・ライブラリ(JSTL)
Copyright © 1997, 2007, Oracle. All rights reserved.