JSPデータベース接続

⚡ スマートサマリー

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

  • 🗄️ 目的: データベースにはギガバイト単位のデータが格納されており、JSPはそのデータを作成、読み取り、管理することができます。
  • 🧱 テーブルを作成する: emp_id と emp_name を使用して guru_test テーブルを作成します。 MySQL クライアントまたはプロンプト。
  • 🔌 接続: sql:setDataSource タグは JDBC ドライバを提供します。 URLユーザー名とパスワード。
  • 🔁 残酷 Operaション: 選択、挿入、更新、削除は、JSTLのSQLタグを介して実行されます。
  • 🔑 パラメーター: sql:paramとemp_idなどの主キーを使用して、特定のレコードを対象とします。

JSPデータベース接続

JSP でデータベースに接続する

このデータベースは、ギガバイト単位の膨大な容量を持つ、様々な種類のデータを保存するために使用されます。JSPはこのようなデータベースに接続して、レコードの作成と管理を行うことができます。

このチュートリアルでは、データベースにテーブルを作成する方法と、JSP を通じてこれらのテーブルにレコードを作成する方法について学習します。

テーブルの作成

In MYSQL データベース任意のMySQLクライアントを使用して、データベースにテーブルを作成できます。ここではPHPMyadminクライアントを使用しており、以下のスクリーンショットのように「新規」オプションを使用して新しいテーブルを作成します。

JSPデータベースにテーブルを作成する

この場合、テーブル名をguru_testとして指定し、emp_idとemp_nameという2つのフィールドを作成します。

  • Emp_idのデータ型はintです
  • Emp_nameのデータ型はvarcharです

JSPデータベースにテーブルを作成する

別の方法としては、コマンドプロンプトを使用して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”と表示されます。

よくあるご質問

はい。AIアシスタントは、JSPを接続するためのJSTL SQLタグまたはJDBCコードを生成できます。 MySQLクエリを構築し、結果行をマッピングします。それでもドライバーを検証する必要があります。 URL実行前に認証情報を入力してください。

はい。AIツールは文字列連結クエリを検出し、パラメータ化クエリやプリペアドステートメントを提案できます。これによりSQLインジェクションのリスクは軽減されますが、データベースへのすべての入力について手動でセキュリティレビューを行うことは依然として推奨されます。

JDBC (Java データベース接続)は、 Java JSPアプリケーションはデータベースに接続します。com.mysql.jdbc.Driverなどのドライバをロードし、その接続を介してSQLステートメントを実行します。

いいえ。JSTL の sql タグは学習やプロトタイプに適しています。本番環境では、データベース ロジックはサーブレット、DAO、またはフレームワークに記述する必要があります。ping JSPは、直接的なクエリよりもプレゼンテーションに重点を置いていた。