検索
  • サインイン
  • サインアップ
パスワードのリセットが成功しました

興味のあるプロジェクトをフォローし、それらに関する最新ニュースをチェックしてください

サーブレットデータベースへのアクセス

このチュートリアルは、JDBC アプリケーションがどのように動作するかをすでに理解していることを前提としています。サーブレット データベース アクセスの学習を開始する前に、適切な JDBC 環境セットアップとデータベースがあることを確認してください。

基本的な概念から始めて、簡単なテーブルを作成し、テーブル内にいくつかのレコードを作成しましょう。

データベーステーブルの作成

テストデータベースTESTEmployeesテーブルを作成するには、以下の手順に従ってください:

ステップ1:

コマンドプロンプトを開き、以下に示すようにインストールディレクトリに変更します。 :

C:\>
C:\>cd Program Files\MySQL\bin
C:\Program Files\MySQL\bin>

ステップ 2:

以下に示すようにデータベースにログインします:

C:\Program Files\MySQL\bin>mysql -u root -p
Enter password: ********
mysql>

ステップ 3:

以下に示すように、テスト データベース TESTEmployee テーブルを作成します:

mysql> use TEST;
mysql> create table Employees
    (
     id int not null,
     age int not null,
     first varchar (255),
     last varchar (255)
    );
Query OK, 0 rows affected (0.08 sec)
mysql>

データ レコードを作成する

最後に、次のように Employee テーブルにいくつかのレコードを作成します。

mysql> INSERT INTO Employees VALUES (100, 18, 'Zara', 'Ali');
Query OK, 1 row affected (0.05 sec)
 
mysql> INSERT INTO Employees VALUES (101, 25, 'Mahnaz', 'Fatma');
Query OK, 1 row affected (0.00 sec)
 
mysql> INSERT INTO Employees VALUES (102, 30, 'Zaid', 'Khan');
Query OK, 1 row affected (0.00 sec)
 
mysql> INSERT INTO Employees VALUES (103, 28, 'Sumit', 'Mittal');
Query OK, 1 row affected (0.00 sec)
 
mysql>

データベースにアクセスする

次の例は、サーブレットを使用して TEST データベースにアクセスする方法を示しています。

// 加载必需的库
import java.io.*;
import java.util.*;
import javax.servlet.*;
import javax.servlet.http.*;
import java.sql.*;
 
public class DatabaseAccess extends HttpServlet{
    
  public void doGet(HttpServletRequest request,
                    HttpServletResponse response)
            throws ServletException, IOException
  {
      // JDBC 驱动器名称和数据库的 URL
      static final String JDBC_DRIVER="com.mysql.jdbc.Driver";  
      static final String DB_URL="jdbc:mysql://localhost/TEST";

      //  数据库的凭据
      static final String USER = "root";
      static final String PASS = "password";

      // 设置响应内容类型
      response.setContentType("text/html");
      PrintWriter out = response.getWriter();
      String title = "数据库结果";
      String docType =
        "<!doctype html public \"-//w3c//dtd html 4.0 " +
         "transitional//en\">\n";
         out.println(docType +
         "<html>\n" +
         "<head><title>" + title + "</title></head>\n" +
         "<body bgcolor=\"#f0f0f0\">\n" +
         "<h1 align=\"center\">" + title + "</h1>\n");
      try{
         // 注册 JDBC 驱动器
         Class.forName("com.mysql.jdbc.Driver");

         // 打开一个连接
         conn = DriverManager.getConnection(DB_URL,USER,PASS);

         // 执行 SQL 查询
         stmt = conn.createStatement();
         String sql;
         sql = "SELECT id, first, last, age FROM Employees";
         ResultSet rs = stmt.executeQuery(sql);

         // 从结果集中提取数据
         while(rs.next()){
            // 根据列名称检索
            int id  = rs.getInt("id");
            int age = rs.getInt("age");
            String first = rs.getString("first");
            String last = rs.getString("last");

            // 显示值
            out.println("ID: " + id + "<br>");
            out.println(", Age: " + age + "<br>");
            out.println(", First: " + first + "<br>");
            out.println(", Last: " + last + "<br>");
         }
         out.println("</body></html>");

         // 清理环境
         rs.close();
         stmt.close();
         conn.close();
      }catch(SQLException se){
         // 处理 JDBC 错误
         se.printStackTrace();
      }catch(Exception e){
         // 处理 Class.forName 错误
         e.printStackTrace();
      }finally{
         // 最后是用于关闭资源的块
         try{
            if(stmt!=null)
               stmt.close();
         }catch(SQLException se2){
         }// 我们不能做什么
         try{
            if(conn!=null)
            conn.close();
         }catch(SQLException se){
            se.printStackTrace();
         }//end finally try
      } //end try
   }
}

次に、上記のサーブレットをコンパイルして、web.xml ファイルに次のエントリを作成しましょう:

....
 <servlet>
     <servlet-name>DatabaseAccess</servlet-name>
     <servlet-class>DatabaseAccess</servlet-class>
 </servlet>
 
 <servlet-mapping>
     <servlet-name>DatabaseAccess</servlet-name>
     <url-pattern>/DatabaseAccess</url-pattern>
 </servlet-mapping>
....

次に、このサーブレットを呼び出してリンク http://localhost:8080/DatabaseAccess を入力すると、次の応答結果が得られます。表示:

りぃ
ホットAIツール
Undress AI Tool
Undress AI Tool

脱衣画像を無料で

AI Clothes Remover
AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undresser.AI Undress
Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

Stock Market GPT
Stock Market GPT

AIを活用した投資調査により賢明な意思決定を実現

人気のツール
メモ帳++7.3.1
メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版
SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6
ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版
SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)