JSPデータベース接続
⚡ スマートサマリー
JSPデータベース接続を使用すると、WebアプリケーションはJSPページをリレーショナルデータベースにリンクすることで、大量のデータを保存および管理できます。このリソースでは、 MySQL JSTL SQLタグを使用して、テーブルへのレコードの挿入、選択、挿入、更新、削除操作を実行します。

JSP でデータベースに接続する
このデータベースは、ギガバイト単位の膨大な容量を持つ、様々な種類のデータを保存するために使用されます。JSPはこのようなデータベースに接続して、レコードの作成と管理を行うことができます。
このチュートリアルでは、データベースにテーブルを作成する方法と、JSP を通じてこれらのテーブルにレコードを作成する方法について学習します。
テーブルの作成
In MYSQL データベース任意のMySQLクライアントを使用して、データベースにテーブルを作成できます。ここではPHPMyadminクライアントを使用しており、以下のスクリーンショットのように「新規」オプションを使用して新しいテーブルを作成します。
この場合、テーブル名をguru_testとして指定し、emp_idとemp_nameという2つのフィールドを作成します。
- Emp_idのデータ型はintです
- Emp_nameのデータ型はvarcharです
別の方法としては、コマンドプロンプトを使用してMYSQLディレクトリに移動する方法があります。
C:\> C:\>cd Program Files\MY SQL\bin C:\>Program Files\MySql\bin>
データベースへのログイン方法は以下のとおりです。
C:\Program Files\MYSQL\bin>mysql –u gururoot –p Enter Password: ******* Mysql>
データベースにテーブル guru_test を作成します。 GuruMySQLプロンプトで以下のようにテストしてください。
Mysql> use GuruTest; MySql> create table guru_test( Emp_id int NOT NULL, Emp_name varchar(11), ); Once you execute this you get the following: Query OK, 0 rows affected(0.10 sec) MySQl> select * from guru_test; Query OK, 0 rows affected(0.10 sec)
まず、レコードを挿入するには INSERT クエリを実行すると、 SELECT テーブルが作成されたかどうかを確認するクエリ。
レコードの作成
テーブルを作成した後、以下の挿入クエリを使用して、guru_test テーブルにレコードを作成する必要があります。
ここに入力されるレコードは次のとおりです。
- 1と第一人者emp1
- 2と第一人者emp2
MySql>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('1', 'guru emp1'); Query OK, 1 row affected (0.05 sec) MySQL>INSERT INTO `couch_tomato_db`.`guru_test` (`emp_id`, `emp_name`) VALUES ('2', 'guru emp2'); Query OK, 1 row affected (0.05 sec)
JSP Operations: 挿入、更新、削除、選択
JSPを使用すると、データベースに対して複数の操作を実行できます。レコードの挿入はもちろん、不要なレコードの削除も可能です。レコードを編集する必要がある場合は、更新操作を使用できます。SELECT操作は、必要なレコードを取得するのに役立ちます。
選択
選択操作は、テーブルからレコードを選択するために使用されます。
例:
この例では、前述のセクションで作成した guru_test テーブルからレコードを取得する SELECT 操作について学習します。
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="sql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <sql:setDataSource var="snapshot" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <sql:query dataSource="${snapshot}" var="result"> SELECT * from guru_test; </sql:query> <table> <tr> <th>Guru ID</th> <th>Name</th> </tr> <c:forEach var="row" items="${result.rows}"> <tr> <td><c:out value="${row.emp_id}"/></td> <td><c:out value="${row.emp_name}"/></td> </tr> </c:forEach> </table> </body> </html>
コードの説明:
Code ライン1: ここでは、io、util、および SQL Javaのライブラリ。
Code ライン3: ここでは、JSTL のコアライブラリをインポートし、そのプレフィックスとして c を指定しています。これにより、出力が得られます。
Code ライン4: ここでは、JSTLのSQLライブラリをインポートし、プレフィックスとしてsqlを指定しています。これにより、SQL操作を実行できるようになります。
Code 15〜17行目: ここではSQLを使用して、変数名を「snapshot」、ドライバをJDBCドライバとしてデータソースに接続しています。また、ユーザー名とパスワードをそれぞれ「gururoot」と「guru」として追加しています。
Code 19〜21行目: ここでは、SELECTクエリのSQLクエリを使用しています。
Code 31〜32行目: クエリの結果から取得した従業員IDと従業員名の出力を、foreachループを使用して出力します。
上記のコードを実行すると、以下のような出力が得られます。
出力:
ここでは、両方のレコードがデータベースから取得されます。
- 1 グル emp1
- 2 グル emp2
インサート
Insert演算子は、レコードを挿入するために使用されます。 データベース.
例:
この例では、テーブル guru_test にレコードを挿入する方法について学習します。
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurusql:update dataSource="${guru}" var="guruvar"> INSERT INTO guru_test VALUES (3, 'emp emp3'); </gurusql:update> </body> </html>
コードの説明:
Code 19〜20行目: ここでは、テーブル guru_test にレコードを挿入しています。 Guruテストデータベース。挿入されたレコードは次のとおりです。empID – 3、empname – emp emp3これらのレコードはテーブルに挿入されます。コードを実行すると、レコードはテーブル guru_test に挿入され、値は 3、emp e となります。mp3.
注意: ここでは、レコードをテーブルに挿入するだけなので、出力は表示していません。レコードは「select * from guru_test」というSELECTクエリを使用して取得できます。レコードが挿入された場合、値は3となり、emp3レコードが挿入されない場合、テーブル内のレコードには3は表示されません。
削除
これは、テーブル guru_test からレコードを削除する削除操作です。
例:
ここでは、削除クエリを使用してテーブル guru_test からレコードを削除します。削除対象のレコードを変数「guruid」に設定すると、対応するレコードがデータベースから削除されます。
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="3"/> <gurusql:update dataSource="${guru}" var="guruvar"> DELETE FROM guru_test WHERE emp_id = ? <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
コードの説明:
Code ライン18: 値が 3 の変数 guruid を設定していますが、これはデータベースから削除する必要があります。 これは常にテーブルの主キーになります。 この場合、主キーは emp_id です。
Code 19〜22行目: ここでは、WHERE句でパラメータを設定する削除クエリを使用しています。ここでパラメータはguruidで、コードの18行目で設定されています。対応するレコードが削除されます。
出力:
上記コードを実行すると、emp_idが3のレコードが削除されます。
注意: この例では、テーブルからレコードを削除しているため、出力結果を表示することはできません。レコードが削除されたかどうかを確認するには、「select * from guru_test」というSELECTクエリを使用する必要があります。この場合、emp idとして3が返された場合は、削除クエリが失敗したことになります。それ以外の場合は、レコードは正常に削除されています。
更新
更新はテーブル内のレコードを編集するために使用されます。
例:
<%@ page import="java.io.*,java.util.*,java.sql.*"%> <%@ page import="javax.servlet.http.*,javax.servlet.*" %> <%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="gurucore"%> <%@ taglib uri="http://java.sun.com/jsp/jstl/sql" prefix="gurusql"%> <%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Guru Database JSP1</title> </head> <body> <gurusql:setDataSource var="guru" driver="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/GuruTest" user="gururoot" password="guru"/> <gurucore:set var="guruid" value="2"/> <gurusql:update dataSource="${guru}" var="guruvar"> UPDATE guru_test SET emp_name='emp guru99' <gurusql:param value="${guruid}" /> </gurusql:update> </body> </html>
コードの説明:
Code ライン18: ここでは、変数 guruid を 2 に設定しています。これは、レコードを更新する ID です。
Code 19〜22行目: ここでは、更新クエリを使用して、18 項で設定されたレコードのテーブル guru_test 内のレコードを更新します。ここでは、emp guru2 が emp guru99 に置き換えられます。
出力:
上記のコードを実行すると、emp_idが2のレコードが99に変更されます。そのため、出力にはemp “guru2”ではなくemp “guru99”と表示されます。


