Sirius

2011年3月30日(水) 20:52

apache-tomcat、MySQL、を USB メモリから起動する(jsp 編)

データベースを作成し、jsp を使ってデータベースの内容を表示させます。
まず、MySQL でユーザとデータベース、テーブルを作成します。各コマンドの詳しい内容は調べてください。

ユーザの作成。(このユーザには全ての権限を与えています。)
mysql> grant all on *.* to test_user@localhost identified by "password";
Query OK, 0 rows affected (0.00 sec)

データベースの作成。
mysql> create database local collate utf8_general_ci;
Query OK, 1 row affected (0.00 sec)

テーブルの作成。(日本語のコードは utf8 にしています。)
mysql> use local;
Database changed
mysql> set character set utf8;
Query OK, 0 rows affected (0.00 sec)

mysql> create table test_table(no char(8) primary key, name text not null, score int);
Query OK, 0 rows affected (0.03 sec)

確認。
mysql> show fields from test_table;
+-------+---------+------+-----+---------+-------+
| Field | Type    | Null | Key | Default | Extra |
+-------+---------+------+-----+---------+-------+
| no    | char(8) | NO   | PRI | NULL    |       |
| name  | text    | NO   |     | NULL    |       |
| score | int(11) | YES  |     | NULL    |       |
+-------+---------+------+-----+---------+-------+
3 rows in set (0.01 sec)

jsp を置くためのアプリケーションの配置。
Tomcat のフォルダ下の webapps の下にアプリケーション名でフォルダを作成します。今回は Test とします。
Test の下に次の内容の index.html を作成します。文字コードを utf8 で保存してください。
--------------------------------ここから----------------------------------
<html>
<head>
  <meta http-equiv="Content-Type" content="text/html; charset=utf8">
  <title>jsp のテスト</title>
</head>
<body>
<ul>
  <li><a href="insert.jsp">レコードの追加</a>
  <li><a href="display.jsp">レコードの表示</a>
  <li><a href="MySQL">サーブレットの実行</a>
</ul>
</body>
</html>
--------------------------------ここまで----------------------------------
サーブレットの実行は次に説明するつもりです。

同様に insert.jsp を作成します。文字コードを utf8 で保存してください。
--------------------------------ここから----------------------------------
<html>
<head><title>全レコードの追加</title></head>
<%@ page language="java" contentType="text/html; charset=utf8" %>
<%@ page import="java.sql.*" %>
<body>
<%
    Connection con = null;
    Statement objSql= null;
    int rs = 0;

    try {
        // MySQL JDBC Driverのロード
        Class.forName("com.mysql.jdbc.Driver");

        /* データベースへ接続 */
        con = DriverManager.getConnection("jdbc:mysql://localhost/local?characterEncoding=utf8","test_user","password");

        // ――――― コネクションに対する操作 ―――――
        // JDBC 問い合わせ SQL 作成
        objSql = con.createStatement();

        // SQL 問い合わせ
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('12345678', '漢字の名前', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('00000001', 'name of alpha', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('00000002', '斎藤 ・・', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('00000005', '赤城 ・・・', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('01010101', '湯沢 ・', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('11111111', '唐沢 ・・〜', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('23232323', '新庄 ・・', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('21212121', '赤松 ・・', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('55555555', '榊 ・', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('99999999', '横木 ・・・', 0)");
        rs += objSql.executeUpdate("insert into test_table (no, name, score) values('00000000', '町田 ・・', 0)");
        //接続をクローズ
        con.close();
        out.println("テーブルに"+rs+"レコード追加しました。");
    }catch (ClassNotFoundException e){
      out.println("ドライバのロードに失敗しました");
    }catch (Exception e){
      out.println(e.getMessage( ));
    }
%>
</body>
</html>
--------------------------------ここまで----------------------------------

同様に display.jsp を作成します。文字コードを utf8 で保存してください。
--------------------------------ここから----------------------------------
<html>
<head><title>jsp のテスト</title></head>
<%@ page language="java" contentType="text/html; charset=utf8" %>
<%@ page import="java.sql.*" %>
<body>
<table border="2">
<tr><td>id</td><td>name</td><td>score</td></tr>
<%
    Connection con = null;
    Statement objSql= null;
    ResultSet rs = null;

    try {
        // MySQL JDBC Driverのロード
        Class.forName("com.mysql.jdbc.Driver");
        
        /* データベースへ接続 */
        con = DriverManager.getConnection ("jdbc:mysql://localhost/local?characterEncoding=utf8","test_user","password");

        // ――――― コネクションに対する操作 ―――――
        // 読みだすだけなので、読み込み専用にする。
        con.setReadOnly(true);
        // JDBC 問い合わせ SQL 作成
        objSql = con.createStatement();
        // SQL 問い合わせ
        rs = objSql.executeQuery("select * from test_table");
        while( rs.next() ) {
            out.println("<tr><td>"+rs.getString("no")+"</td>");
            out.println("<td>"+rs.getString("name")+"</td>");
            out.println("<td>"+rs.getInt("score")+"</td></tr>");
        }

        //接続をクローズ
        con.close();
    }catch (ClassNotFoundException e){
      out.println("ドライバのロードに失敗しました");
    }catch (Exception e){
      out.println(e.getMessage( ));
    }
%>
</table>
</body>
</html>
--------------------------------ここまで----------------------------------

http://localhost:8080/Test/ を開いて確認してください。
はじめに レコードの追加をして、レコードを表示させてください。
テーブルが表示されれば成功です。
次は、サーブレットを使ってみたいと思います。

written by sirius [その他] [この記事のURL] [コメントを書く] [コメント(0)] [TB(0)]

この記事へのトラックバックPingURL

Comments

TrackBacks

Sirius

MySketch 2.7.2 written by 夕雨