データベース接続

 この節では、ServletやJSPからデータベースに接続する方法を学習します。今回はデータベース連携編で準備したデータベースを利用します。Javaからデータベースに接続するには、接続するための部品を使用するので、準備をする必要があります。今回はMySQLを活用しますので、次のファイルを用意します。(データベース連携編で使用したファイル)

mysql-connector-java-5.1.40-bin.jar

 上記のファイルをWebサイト内のWEB-INFフォルダー内のlibフォルダーに配置します。パッケージ・エクスプローラーよりWebサイト内の「WEB-INF」―「lib」フォルダを右クリックして、表示されるメニューより「インポート(I)...」を選択してください。

インポートを選択
インポートを選択

 次の図のように「一般」―「ファイル・システム」を選択し、「次へ(N)>」をクリックします。

ファイル・システムを選択
ファイル・システムを選択

 次の図のように、「次のディレクトリーから(Y)」に用意したJARファイルが格納されているフォルダーを指定します。すると、下に一覧が表示されるので、「mysql-connector-java-5.1.40-bin.jar」にチェックを入れて「完了(F)」ボタンをクリックします。

JARファイルを選択
JARファイルを選択

 すると、ファイルが追加されます。

ファイルが追加された
ファイルが追加された

○ ファイル

 プロジェクトに次のようなServletを追加してください。

パッケージ名 test.servlet
クラス名 ConnectionTest
スーパークラス名 javax.servlet.http.HttpServlet

サンプルダウンロード

○ プログラム

 doGetメソッドを追加して、次のようにプログラムを入力してください。

  1. package test.servlet;
  2. import java.io.IOException;
  3. import java.io.PrintWriter;
  4. import java.sql.Connection;
  5. import java.sql.DriverManager;
  6. import javax.servlet.ServletException;
  7. import javax.servlet.http.HttpServlet;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.servlet.http.HttpServletResponse;
  10. public class ConnectionTest extends HttpServlet {
  11.  @Override
  12.  protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
  13.   //クライアントに出力する準備
  14.   resp.setContentType("text/html; charset=utf-8");
  15.   PrintWriter pw = resp.getWriter();
  16.   String message = null;
  17.   Connection con = null;
  18.   try{
  19.    //JDBCドライバクラスの指定
  20.    String drivername = "com.mysql.jdbc.Driver";
  21.    //データベースを指定
  22.    String url = "jdbc:mysql://localhost:3306/books";
  23.    //ユーザー名
  24.    String username = "root";
  25.    //パスワード
  26.    String password = "";
  27.    //指定したドライバクラスを読み込み
  28.    Class.forName(drivername);
  29.    //データベースに接続
  30.    con = DriverManager.getConnection(url, username, password);
  31.    message = "データベースに接続できました。";
  32.   }catch(Exception e){
  33.    //エラーメッセージをセット
  34.    message = "データベースに接続できませんでした。";
  35.   }finally{
  36.    try{
  37.     //データベースに接続されていれば切断する
  38.     if(con != null){
  39.      con.close();
  40.     }
  41.    }catch(Exception e){
  42.     message = "エラーが発生しました。";
  43.    }
  44.   }
  45.   //クライアントにHtmlタグを書き出し
  46.   pw.println("<html>");
  47.   pw.println("<head>");
  48.   pw.println("<title>データベースに接続する</title>");
  49.   pw.println("</head>");
  50.   pw.println("<body>");
  51.   pw.println(message);
  52.   pw.println("</body>");
  53.   pw.println("</html>");
  54.  }
  55. }

〇 Webアプリケーション設定ファイルの編集

 web.xmlに次の内容を追加してください。

  1. <?xml version="1.0" encoding="UTF-8"?>
  2. <web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
  3.   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4.   xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
  5.   http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
  6.   version="3.1">
(そのほかの記述…)
  1.  <servlet>
  2.   <servlet-name>ConnectionTest</servlet-name>
  3.   <servlet-class>test.servlet.ConnectionTest</servlet-class>
  4.  </servlet>
  5.  <servlet-mapping>
  6.   <servlet-name>ConnectionTest</servlet-name>
  7.   <url-pattern>/connectiontest</url-pattern>
  8.  </servlet-mapping>

○ 実行結果

http://localhost:8080/WebApp/connectiontest

実行結果
実行結果

○ 解説

 データベースに接続するための準備として、データベース用のドライバをJavaの実行環境に読み込みます。37行目で、設定したJarファイルの中から、ドライバにあたるクラスをClassクラスのforNameメソッドで実行環境に読み込んでおきます。次に40行目で、データベースに接続するためにDriverManagerクラスのgetConnectionメソッドを使用します。このメソッドの引数で、接続するデータベース、接続ユーザー名、パスワードを指定します。これによりデータベースに接続できるので、データベースに対する処理を記述します(今回はなし)。その後、49行目でデータベースを閉じます。

前へ   次へ