N-BOX
TOP
新着情報
フォトギャラリー
デジモノ
おべんきょう
はまりもの
ひとりごと
カメラ
パソコン
掲示板
プロフィール
リンク
メール
afer_88_31.gif
リンクシェア アフィリエイト紹介プログラム
PSX_120_60
デル5_120x60
富士通ショッピングサイト WEB MART

MySQLのWeb出力

 MySQLの動作及びACCESSとの連携はひとまず完了しているので、プログラムでの基本となる、Web上でのデータベース操作をしたいと思います。
 まずは、現在登録されているデータをWebで表示させてみたいと思います。
 Web上でデータベースの内容を扱うには、JDBCドライバーが必要になります。JDBCドライバーはMySQLのページにあるので、そこからダウンロードします。
 私は本に付属のCDから、コピーをします。
 エクスプローラーなどで、コピーすればよいのですが、コピーしただけでは、Eclipseには表示が出ませんので、メニューの「ファイル」−「最新表示」をクリックすると、下のようにJDBCドライバーが表示されます。

 JDBCドライバーが登録できたら、実際にソースを書いて、実際に動作を確認してみます。
package te;

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

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

      response.setContentType("text/html; charset=Shift_JIS");
      PrintWriter out = response.getWriter();
      out.println("<html><head><title>テーブル内容の一覧表示</title></head>");

      // データベースドライバをロードする
      Class.forName("com.mysql.jdbc.Driver");
      // データベースと接続する
      Connection con = DriverManager.getConnection("jdbc:mysql://localhost/ltss?useUnicode=
                  true&characterEncoding=SJIS", "mysql", "mysql");
      // Statementオブジェクトを生成し、検索を実行する
      Statement stmt = con.createStatement();
      ResultSet rs = stmt.executeQuery("select * from test_tbl");
      // 検索結果のメタデータを取得する
      ResultSetMetaData rsmd = rs.getMetaData();

      // 検索結果を表示する
      // まず、表の各列の見出しから
      out.println("<body><table border=1><tr>");
      for (int i = 1; i <= rsmd.getColumnCount(); i++)
        out.println("<th>" + rsmd.getColumnLabel(i));

      // 検索結果の全レコードを対象とする
      while (rs.next()) {
        // 各レコードについて、全フィールドを表示する
        out.println("<tr>");
        for (int i = 1; i <= rsmd.getColumnCount(); i++) {
          out.println("<td>");
          try {
            out.println(rs.getObject(i).toString());
          } catch (Exception e) {}
        }
      }

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

      rs.close();
      stmt.close();
      con.close();
      } catch (Exception e) {
        e.printStackTrace();
      }
    }
}
 ソースが出来たら、次はweb.xmlに今回のサーブレットの設定を追加します。
<?xml version="1.0" encoding="shift_jis"?>
<!DOCTYPE web-app
    PUBLIC "-//Sun Microsystems, Inc.//DTD Web Application2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
<web-app>

    <servlet>
        <servlet-name>hello</servlet-name>
        <servlet-class>te.HelloSrv</servlet-class>
    </servlet>
    <servlet>
        <servlet-name>list</servlet-name>
        <servlet-class>te.DbListServlet</servlet-class>
    </servlet>

    <servlet-mapping>
        <servlet-name>hello</servlet-name>
        <url-pattern>/hello</url-pattern>
    </servlet-mapping>
    <servlet-mapping>
        <servlet-name>list</servlet-name>
        <url-pattern>/list</url-pattern>
    </servlet-mapping>
</web-app>
 設定が出来たら、Tomcatを実行させて、実際にテーブルの内容が表示されるかどうか確認します。
今回は1件しかデータを登録していないので、このような内容になりました。
 これで、サーブレットからのデータベースの操作も確認が取れました。ただ、今回のサーブレットはデータベース接続をサーブレットの中で確立していますが、これは時間がかかるため、実際の開発ではあらかじめデータベースの接続を確立しておいて、それを利用すると言う方法がとられています。
 今回は、とりあえずデータベースへの接続が出来るかどうかをチェックするために、サーブレットの中にデータベースの接続処理をいれました。
MySQLの基礎へ  UP  データベースの登録
夏のボーナスキャンペーン 468×60