カテゴリ: Jakarta EE 更新日: 2026/01/07

Jakarta EE JSPでJSTL SQLタグを使った簡易データベースアクセスをやさしく解説

Jakarta EE JSPでJSTL SQLタグを使った簡易データベースアクセス
Jakarta EE JSPでJSTL SQLタグを使った簡易データベースアクセス

先生と生徒の会話形式で理解しよう

生徒

「Jakarta EEのJSPで、データベースの中身を画面に表示したいんですが、難しそうで不安です。」

先生

「JSPでは、JSTLというタグライブラリを使うことで、Javaコードを書かずにデータベースへアクセスできます。」

生徒

「SQLを書くだけでデータを取得できるんですか?」

先生

「JSTLのSQLタグを使えば、簡単なデータ取得や一覧表示を体験できます。まずは仕組みから順番に見ていきましょう。」

1. Jakarta EEとJSPの役割を整理しよう

1. Jakarta EEとJSPの役割を整理しよう
1. Jakarta EEとJSPの役割を整理しよう

Jakarta EEは、エンタープライズ向けのJavaアプリケーションを開発するための標準仕様です。 Webアプリケーション開発では、ServletやJSPを使ってリクエスト処理や画面表示を行います。 JSPはHTMLに近い書き方で画面を作れるため、初心者でも理解しやすい技術です。 Jakarta EEの中でJSPは表示担当として使われ、Servletが処理担当になるという役割分担が基本になります。

今回扱うJSTLは、JSPをより安全で読みやすくするためのタグライブラリです。 条件分岐や繰り返し、文字列操作などをタグで書けるため、Javaコードの混在を減らせます。 その中に含まれているのが、簡易的にデータベースへアクセスできるSQLタグです。

2. JSTL SQLタグとは何か

2. JSTL SQLタグとは何か
2. JSTL SQLタグとは何か

JSTL SQLタグは、JSP上で直接SQL文を実行するための機能を提供します。 データベース接続の設定、SELECT文の実行、結果の取得までをタグで記述できます。 学習用途や小規模な検証では便利ですが、大規模開発では推奨されない点も理解しておくことが重要です。

初心者にとっては、データベースとWeb画面がどのようにつながるのかを体感できる良い教材になります。 Jakarta EE、JSP、JSTL、SQLというキーワードをまとめて理解できるのが大きなメリットです。

3. JSTLとSQLタグの準備

3. JSTLとSQLタグの準備
3. JSTLとSQLタグの準備

JSTLを使うためには、ライブラリをプロジェクトに追加し、JSPでタグライブラリを宣言します。 Jakarta EE対応のアプリケーションサーバーでは、標準でJSTLが利用できる場合もあります。 JSPファイルの先頭でタグライブラリを指定することで、SQLタグや制御タグが使用可能になります。


<%@ taglib prefix="c" uri="jakarta.tags.core" %>
<%@ taglib prefix="sql" uri="jakarta.tags.sql" %>

この宣言によって、JSP内でcタグやsqlタグを使えるようになります。 prefixは任意ですが、慣例としてよく使われる名前を選ぶと読みやすくなります。

4. データベース接続を設定する

4. データベース接続を設定する
4. データベース接続を設定する

JSTL SQLタグでは、データベースへの接続情報をJSP内で設定できます。 接続先のURL、ユーザー名、パスワードを指定することで、簡単に接続できます。 ここでは学習用として、JSP内に直接設定する例を示します。


<sql:setDataSource
    var="ds"
    driver="org.h2.Driver"
    url="jdbc:h2:mem:testdb"
    user="sa"
    password="" />

この設定で、データソースがdsという名前で利用できるようになります。 実際の業務では、サーバー側でデータソースを管理する方法が一般的ですが、 まずは仕組みを理解することを優先しましょう。

5. SELECT文でデータを取得する

5. SELECT文でデータを取得する
5. SELECT文でデータを取得する

データベースに接続できたら、次はSQL文を実行します。 JSTLのqueryタグを使うことで、SELECT文を発行し、その結果を変数に格納できます。 取得したデータは、後続のJSP処理で画面表示に利用します。


<sql:query dataSource="${ds}" var="result">
    SELECT id, name FROM users
</sql:query>

この例では、usersテーブルからIDと名前を取得しています。 実行結果はresultという変数に格納され、複数行のデータとして扱えます。 SQL文がそのまま書けるため、データベース学習とも相性が良い構文です。

6. 取得したデータをJSPで表示する

6. 取得したデータをJSPで表示する
6. 取得したデータをJSPで表示する

データを取得しただけでは、画面には何も表示されません。 JSTLの繰り返しタグを使って、取得結果をHTMLとして出力します。 ここでは表形式でデータを表示する基本的な例を見てみましょう。


<table class="table table-bordered">
    <tr>
        <th>ID</th>
        <th>名前</th>
    </tr>
    <c:forEach var="row" items="${result.rows}">
        <tr>
            <td>${row.id}</td>
            <td>${row.name}</td>
        </tr>
    </c:forEach>
</table>

このように、SQLの結果をそのまま画面表示に利用できます。 JSP、JSTL、ELが連携して動いている点を意識すると理解が深まります。 初心者のうちは、データが画面に表示される流れを丁寧に追うことが大切です。

7. JSTL SQLタグを使うときの注意点

7. JSTL SQLタグを使うときの注意点
7. JSTL SQLタグを使うときの注意点

JSTL SQLタグは便利ですが、本格的な業務システムでは推奨されないケースが多いです。 理由としては、セキュリティ対策や保守性、役割分担の観点があります。 データベース処理はServletや専用クラスに任せ、JSPは表示に専念する設計が一般的です。

ただし、Jakarta EEやJSPの学習段階では、SQLタグは非常に分かりやすい教材になります。 JSPからデータベースへアクセスし、結果を表示する一連の流れを体験することで、 Webアプリケーションの全体像をつかみやすくなります。

カテゴリの一覧へ
新着記事
New1
Jakarta EE
Jakarta EEとクラウドネイティブ開発の相性とは?初心者向けにわかりやすく解説
New2
Jakarta EE
JakartaEE JSPのリクエスト属性とスコープの基本を徹底解説!初心者向け入門ガイド
New3
Play Framework
Play Frameworkのビューテストを徹底解説!Twirlテンプレートの品質を高める方法
New4
Jakarta EE
JakartaEE フィルタで認証と認可を実装する方法を初心者向けに解説!サーブレットのセキュリティ入門
人気記事
No.1
Java&Spring記事人気No1
Jakarta EE
Jakarta EEとSpringの比較|どちらを選ぶべきか?初心者向けに徹底解説!
No.2
Java&Spring記事人気No2
Play Framework
Play Frameworkのビューを共通化!テンプレート間のインクルード方法を徹底解説
No.3
Java&Spring記事人気No3
Play Framework
Play Frameworkプロジェクト作成直後にやるべき初期設定ガイド!初心者でも安心
No.4
Java&Spring記事人気No4
Play Framework
Play FrameworkでCSSやJavaScriptを読み込む方法を徹底解説!静的リソースの組み込みガイド
No.5
Java&Spring記事人気No5
Jakarta EE
Jakarta サーブレットのHttpServletRequestを徹底解説!初心者でもわかる基本操作と使い方
No.6
Java&Spring記事人気No6
Play Framework
Play Frameworkで多言語対応(i18n)を徹底解説!Twirlテンプレートでの使い方
No.7
Java&Spring記事人気No7
Jakarta EE
Jakarta EEとJava EEアプリの互換性を完全解説!移行で困らないための基礎知識
No.8
Java&Spring記事人気No8
Jakarta EE
Jakarta EEの標準仕様とAPI一覧を完全解説!初心者でもわかるエンタープライズJavaの基本