JDBCドライバのロード

広告

ではここからデータベースへの接続を開始します。

データベースに接続するためには、まずJDBCドライバをロードします。MySQLの場合は次のように行います。

try {
  Class.forName("com.mysql.jdbc.Driver").newInstance();
}catch (ClassNotFoundException e){
}catch (Exception e){
}

簡単に説明しますとClassクラスと言うのは、Javaにおけるクラスやインターフェースを表すものです。特定のクラスを利用するには「Class.forName(クラス名)」とクラス名を指定して"forName"メソッドを実行します。

そして、指定したクラスのインスタンスを作成するには"newInstance"メソッドを使います。これで指定したクラスのインスタンスが作成されました。

※良く分からない説明だと思いますが、私もよく理解していません。

それではまずドライバのロードが出来るかどうかの確認をしてみましょう。

サンプルプログラム

今回作成するWebアプリケーションのパスは「database」とし、Webアプリケーションの置き場所は「d:¥servlet-sample¥database¥」としました。コンテキストファイルは下記のようになります。

database.xml

<Context path="/database"
docBase="d:/servlet-sample/database"/>

web.xmlファイルは下記のようにしました。

<?xml version="1.0" encoding="ISO-8859-1"?>
<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
   http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
  version="2.4">

  <servlet>
    <servlet-name>databasetest</servlet-name>
    <servlet-class>DatabaseTest</servlet-class>
  </servlet>

  <servlet-mapping>
    <servlet-name>databasetest</servlet-name>
    <url-pattern>/databasetest</url-pattern>
  </servlet-mapping>
</web-app>

プログラムは下記の通りです。

DatabaseTest.java

import java.io.*;
import javax.servlet.*;
import javax.servlet.http.*;

public class DatabaseTest extends HttpServlet {
  public void doGet(HttpServletRequest request, HttpServletResponse response)
    throws IOException, ServletException{

    response.setContentType("text/html; charset=Shift_JIS");
    PrintWriter out = response.getWriter();

    out.println("<html>");
    out.println("<head>");
    out.println("<title>データベーステスト</title>");
    out.println("</head>");
    out.println("<body>");

    String msg = "";
    try {
      Class.forName("com.mysql.jdbc.Driver").newInstance();
      msg = "ドライバのロードに成功しました";
    }catch (ClassNotFoundException e){
      msg = "ドライバのロードに失敗しました";
    }catch (Exception e){
      msg = "ドライバのロードに失敗しました";
    }

    out.println("<p>");
    out.println(msg);
    out.println("</p>");

    out.println("</body>");
    out.println("</html>");
  }
}

上記をコンパイル後に「d:¥servlet-sample¥database¥WEB-INF¥classes¥」ディレクトリにクラスファイルを移動した後で、ブラウザで「http://localhost:8080/database/databasetest」へアクセスしてみます。

JDBCドライバのロード

上記のように表示されれば無事JDBCドライバのロードは出来ています。

( Written by Tatsuo Ikura )

関連記事 (一部広告含む)