この章は、読者が JDBC についてある程度の理解を持っていることを前提としています。 JSP データベース アクセスの学習を開始する前に、JDBC 環境が正しく構成されていることを確認してください。
まず、以下の手順に従って単純なテーブルを作成し、いくつかの単純なレコードを挿入しましょう。
データベースに Employees テーブルを作成する手順は次のとおりです。
CMD を開き、データベースのインストール ディレクトリを入力します。
C:>C:>cd Program FilesMySQLbinC:Program FilesMySQLbin>
C:Program FilesMySQLbin>mysql -u root -pパスワードを入力してください: ********mysql>
create Database ステートメントを使用して、新しいデータベース TEST を作成します。
mysql> データベースの作成 TEST
TEST データベースに Employee テーブルを作成します。
mysql> use TEST;mysql> create table Employees (id int not null, age int not null, first varchar (255), last varchar (255) );クエリ OK、影響を受ける行は 0 (0.08 秒)mysql>
Employee テーブルを作成した後、テーブルにいくつかのレコードを挿入します。
mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');クエリ OK、1 行が影響を受けました (0.05 秒) mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma');クエリ OK、1 行が影響を受ける (0.00 秒) mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan');クエリ OK、1 行が影響を受けました (0.00 秒) mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal');クエリ OK、1 行が影響を受けました(0.00秒) mysql>
次の例は、JSTL SQL タグを使用して SQL SELECT ステートメントを実行する方法を示しています。
<%@
ページ言語
=
「ジャワ」
コンテンツタイプ
=
「テキスト/html; 文字セット=UTF-8」
ページエンコーディング
=
「UTF-8」
%>
<%@
ページ
輸入
=
「java.io.*、java.util.*、java.sql.*」
%>
<%@
ページ
輸入
=
「javax.servlet.http.*,javax.servlet.*」
%>
<%@
タグリブウリ
=
「http://java.sun.com/jsp/jstl/core」
接頭語
=
「c」
%>
<%@
タグリブウリ
=
「http://java.sun.com/jsp/jstl/sql」
接頭語
=
「SQL」
%>
<html>
<頭>
<タイトル>
SELECT操作
</タイトル>
</head>
<本文>
<sql:setDataSource
変数
=
「スナップショット」
ドライバ
=
「com.mysql.jdbc.ドライバー」
URL
=
「jdbc:mysql://localhost:3306/TEST」
ユーザー
=
"根"
パスワード
=
「パス123」
/>
<sql:クエリ
データソース
=
「${スナップショット}」
変数
=
"結果"
>
従業員から * を選択します。
</sql:クエリ>
<テーブル
国境
=
「1」
幅
=
「100%」
>
<tr>
<番目>
従業員ID
</th>
<番目>
ファーストネーム
</th>
<番目>
苗字
</th>
<番目>
年
</th>
</tr>
<c:forEach
変数
=
"行"
アイテム
=
「${result.rows}」
>
<tr>
<td><c:out
価値
=
「${行.id}」
/></td>
<td><c:out
価値
=
「${row.first}」
/></td>
<td><c:out
価値
=
「${行.最後}」
/></td>
<td><c:out
価値
=
「${行.年齢}」
/></td>
</tr>
</c:forEach>
</テーブル>
</body>
</html>
この JSP 例にアクセスすると、結果は次のようになります。
この例では、JSTL SQL タグを使用して SQL INSERT ステートメントを実行する方法を示します。
<%@
ページ言語
=
「ジャワ」
コンテンツタイプ
=
「テキスト/html; 文字セット=UTF-8」
ページエンコーディング
=
「UTF-8」
%>
<%@
ページ
輸入
=
「java.io.*、java.util.*、java.sql.*」
%>
<%@
ページ
輸入
=
「javax.servlet.http.*,javax.servlet.*」
%>
<%@
タグリブウリ
=
「http://java.sun.com/jsp/jstl/core」
接頭語
=
「c」
%>
<%@
タグリブウリ
=
「http://java.sun.com/jsp/jstl/sql」
接頭語
=
「SQL」
%>
<html>
<頭>
<タイトル>
INSERT操作
</タイトル>
</head>
<本文>
<sql:setDataSource
変数
=
「スナップショット」
ドライバ
=
「com.mysql.jdbc.ドライバー」
URL
=
「jdbc:mysql://localhost/TEST」
ユーザー
=
"根"
パスワード
=
「パス123」
/>
<sql:更新
データソース
=
「${スナップショット}」
変数
=
"結果"
>
INSERT INTO 従業員の値 (104, 2, 'Nuha', 'Ali');
</sql:更新>
<sql:クエリ
データソース
=
「${スナップショット}」
変数
=
"結果"
>
従業員から * を選択します。
</sql:クエリ>
<テーブル
国境
=
「1」
幅
=
「100%」
>
<tr>
<番目>
従業員ID
</th>
<番目>
ファーストネーム
</th>
<番目>
苗字
</th>
<番目>
年
</th>
</tr>
<c:forEach
変数
=
"行"
アイテム
=
「${result.rows}」
>
<tr>
<td><c:out
価値
=
「${行.id}」
/></td>
<td><c:out
価値
=
「${row.first}」
/></td>
<td><c:out
価値
=
「${行.最後}」
/></td>
<td><c:out
価値
=
「${行.年齢}」
/></td>
</tr>
</c:forEach>
</テーブル>
</body>
</html>
この JSP 例にアクセスすると、結果は次のようになります。
この例では、JSTL SQL タグを使用して SQL DELETE ステートメントを実行する方法を示します。
<%@
ページ言語
=
「ジャワ」
コンテンツタイプ
=
「テキスト/html; 文字セット=UTF-8」
ページエンコーディング
=
「UTF-8」
%>
<%@
ページ
輸入
=
「java.io.*、java.util.*、java.sql.*」
%>
<%@
ページ
輸入
=
「javax.servlet.http.*,javax.servlet.*」
%>
<%@
タグリブウリ
=
「http://java.sun.com/jsp/jstl/core」
接頭語
=
「c」
%>
<%@
タグリブウリ
=
「http://java.sun.com/jsp/jstl/sql」
接頭語
=
「SQL」
%>
<html>
<頭>
<タイトル>
削除操作
</タイトル>
</head>
<本文>
<sql:setDataSource
変数
=
「スナップショット」
ドライバ
=
「com.mysql.jdbc.ドライバー」
URL
=
「jdbc:mysql://localhost/TEST」
ユーザー
=
"根"
パスワード
=
「パス123」
/>
<c:セット
変数
=
「empId」
価値
=
「103」
/>
<sql:更新
データソース
=
「${スナップショット}」
変数
=
"カウント"
>
従業員から削除 WHERE ID = ?
<sql:パラメータ
価値
=
「${empId}」
/>
</sql:更新>
<sql:クエリ
データソース
=
「${スナップショット}」
変数
=
"結果"
>
従業員から * を選択します。
</sql:クエリ>
<テーブル
国境
=
「1」
幅
=
「100%」
>
<tr>
<番目>
従業員ID
</th>
<番目>
ファーストネーム
</th>
<番目>
苗字
</th>
<番目>
年
</th>
</tr>
<c:forEach
変数
=
"行"
アイテム
=
「${result.rows}」
>
<tr>
<td><c:out
価値
=
「${行.id}」
/></td>
<td><c:out
価値
=
「${row.first}」
/></td>
<td><c:out
価値
=
「${行.最後}」
/></td>
<td><c:out
価値
=
「${行.年齢}」
/></td>
</tr>
</c:forEach>
</テーブル>
</body>
</html>
この JSP 例にアクセスすると、結果は次のようになります。
この例では、JSTL SQL タグを使用して SQL UPDATE ステートメントを実行する方法を示します。
<%@
ページ言語
=
「ジャワ」
コンテンツタイプ
=
「テキスト/html; 文字セット=UTF-8」
ページエンコーディング
=
「UTF-8」
%>
<%@
ページ
輸入
=
「java.io.*、java.util.*、java.sql.*」
%>
<%@
ページ
輸入
=
「javax.servlet.http.*,javax.servlet.*」
%>
<%@
タグリブウリ
=
「http://java.sun.com/jsp/jstl/core」
接頭語
=
「c」
%>
<%@
タグリブウリ
=
「http://java.sun.com/jsp/jstl/sql」
接頭語
=
「SQL」
%>
<html>
<頭>
<タイトル>
更新操作
</タイトル>
</head>
<本文>
<sql:setDataSource
変数
=
「スナップショット」
ドライバ
=
「com.mysql.jdbc.ドライバー」
URL
=
「jdbc:mysql://localhost/TEST」
ユーザー
=
"根"
パスワード
=
「パス123」
/>
<c:セット
変数
=
「empId」
価値
=
「102」
/>
<sql:更新
データソース
=
「${スナップショット}」
変数
=
"カウント"
>
UPDATE 従業員 SET last = 'Ali' WHERE Id = ?
<sql:パラメータ
価値
=
「${empId}」
/>
</sql:更新>
<sql:クエリ
データソース
=
「${スナップショット}」
変数
=
"結果"
>
従業員から * を選択します。
</sql:クエリ>
<テーブル
国境
=
「1」
幅
=
「100%」
>
<tr>
<番目>
従業員ID
</th>
<番目>
ファーストネーム
</th>
<番目>
苗字
</th>
<番目>
年
</th>
</tr>
<c:forEach
変数
=
"行"
アイテム
=
「${result.rows}」
>
<tr>
<td><c:out
価値
=
「${行.id}」
/></td>
<td><c:out
価値
=
「${row.first}」
/></td>
<td><c:out
価値
=
「${行.最後}」
/></td>
<td><c:out
価値
=
「${行.年齢}」
/></td>
</tr>
</c:forEach>
</テーブル>
</body>
</html>
この JSP 例にアクセスすると、結果は次のようになります。