連載
» 2009年04月07日 00時00分 公開

Webアプリの常識をJSPとStrutsで身につける(8):MySQLの常識を知りセットアップしてJSPからDB操作 (2/4)

[眞野寿彦,株式会社メセナ・ネットコム]

JavaのDB操作の“要”、「JDBC」とは?

 JDBC(Java DataBase Connectivity)は、JavaからDBにアクセスするための標準APIです。JavaアプリケーションからDBを利用するには、各DBベンダが提供するAPIを利用する必要があります。個々のDBごとに異なるAPIが提供されるのも、それはそれで良いのですが、共通のAPIがあるとアプリケーション開発者にとってはとても助かります。このDBアクセス用の共通APIがJDBCです。

 クライアントからは共通のAPIを通してDBにアクセスし、実際のDBアクセス処理は、以下で説明するJDBCドライバが行います。JDBCを通じてDBにアクセスすることで、どのDBを使っても同じプログラムを記述できます。

互換性のないデータ型やSQL構文も

 ただし、各DB間で互換性のないデータ型やSQL構文も存在するので、そこはプログラムの修正が必要になります。

4つのJDBCドライバ

 JDBCドライバには、以下の4つの種類があります。各データベースベンダがこれらの各種ドライバを提供しています。

  • TYPE1:JDBC-ODBCブリッジドライバ
  • TYPE2:ネイティブブリッジドライバ
  • TYPE3:ネットプロトコルドライバ
  • TYPE4:ネイティブプロトコルドライバ

 ドライバタイプを含めたJDBCの詳細については、下記記事を参照しておいてください。

DBと連携したWebアプリを作ってみよう

 では、DBと連携したWebアプリケーションを構築しましょう。今回のサンプルプログラムもこれまでの連載と同様、「PKG\Hello」配下で作成します。

MySQLにテーブルとデータを作成

 まず、MySQLのデータを準備します。手順は以下のとおりとなります。

  1. 「test_db」というデータベースの作成
  2. test_dbデータベースに「user」テーブルを作成
  3. userテーブルにデータを登録
図5 コマンドでテーブルとデータを作成 図5 コマンドでテーブルとデータを作成

MySQL用のJDBCドライバをセットアップ

 次に、MySQL用のJDBCドライバである「MySQL Connector/J」を取得します。今回は最新のドライバである「MySQL Connector/J 5.1」を使用します。ダウンロードページにアクセスして「mysql-connector-java-5.1.7.tar.gz」をダウンロードします。

 ダウンロードしたファイルを解凍して、mysql-connector-java-5.1.7ファイルの中の「mysql-connector-java-5.1.7-bin.jar」を「/%TOMCAT_HOME%/lib/」配下へコピーしてください。

Tomcatの設定

 次に、Tomcatの設定ファイルである「server.xml」のコンテキスト(Context)の編集を行います。

server.xml(編集前)
<Context path="/hello" docBase="Helloプロジェクトの位置" />

server.xml(編集後)
<Context path="/hello" docBase="Helloプロジェクトの位置">
  <Resource name="jdbc/mysql" auth="Container"
    type="javax.sql.DataSource"
    username="root" password="root"
    driverClassName="com.mysql.jdbc.Driver"
    url="jdbc:mysql://localhost/test_db?useUnicode=true&amp;characterEncoding=sjis"
    maxActive="8" maxIdle="8" />
</Context>

JSPファイルを作成

 それでは、PKG配下にサンプルのソースコードを作成していきます。「PKG\Hello\pages」配下に下記のJSPファイルを作成してください。

Login01.jsp
<%@ page contentType="text/html; charset=Shift-JIS" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<html:html>
  <head><title>ログイン画面</title></head>
  <html:form action="/Login">
    <H2>ログイン画面</H2>
    <TABLE>
      <TR><TD><html:errors/></TD></TR>
      <TR>
        <TD>ログインID&nbsp;:&nbsp;</TD>
        <TD><html:text property="id" size="20" /></TD>
      </TR>
      <TR><TD>パスワード&nbsp;:&nbsp;</TD>
        <TD>
          <html:password property="password" size="20"
            redisplay="false" />
        </TD>
      </TR>
    </TABLE>
    <P>
      <html:submit property="submit" value="ログイン" />
    </P>
  </html:form>
</html:html>

Login02.jsp
<%@ page contentType="text/html; charset=Shift-JIS" %>
<%@ taglib uri="http://struts.apache.org/tags-html" prefix="html" %>
<%@ taglib uri="http://struts.apache.org/tags-bean" prefix="bean" %>
<html:html>
  <head><title>ログイン成功</title></head>
  <html:form action="/Login">
    <h2>ログイン成功</h2>
    <TABLE><TR><TD>ようこそ&nbsp;
          <bean:write name="LoginForm" property="name" />&nbsp;さん
        </TD></TR></TABLE>
  </html:form>
</html:html>

 次ページでは引き続き、DBと連携したWebアプリケーションを作ります。DB接続の具体的なソースコードを見ながら解説します。

Copyright © ITmedia, Inc. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。