Shoeisha Technology Media

CodeZine(コードジン)

記事種別から探す

サーバサイドJava入門 Java DBによるデータベースアクセス

第8回 JSP/サーブレットからのデータベースアクセスの基本

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2007/08/14 14:00

今回は、JSP/サーブレットからSQLデータベースを利用する方法について説明を行います。Java 6には、標準で「Java DB」というデータベース機能が内蔵されています。これを利用して、データベースアクセスの基本を理解していきましょう。

目次

はじめに

 サーバサイドで各種のデータを管理する場合、テキストファイルなどで済ませるケースはあまり多くないでしょう。やはり、ある程度以上の規模ともなれば、データベースで管理をすることになります。一般的には「SQL(Structured Query Language)」と呼ばれる問い合わせ言語を使ってデータベースに問い合わせを行うタイプのものが多用されます。このデータベースにSQLを使ってデータアクセスをする方法について説明をしていくことにしましょう。

対象読者

  • Javaの基本(文法全般および基本的なクラスライブラリの使い方程度)をマスターしている人。
  • サーバサイド(JSP、サーブレット)について基礎から勉強したい人。
  • Eclipse WTPを使った開発に興味がある人。

Java DBの利用について

 SQLに対応したデータベースは多数存在します。ここでは、Java 6よりJDKに標準で組み込まれることになった「Java DB」を利用してみます。Java DBは、Apache Foundationで「Derby」として開発されていたものです。

 通常のSQLデータベースは、サーバとして起動し、そこにクライアントからアクセスするという形で利用をします。が、Java DBの場合、データベースサーバとしてプログラムを起動しクライアントからアクセスをするだけでなく、直接ライブラリを使ってデータベースにアクセスすることもできます。JDKに標準で組み込まれたことから、今後、Java DBの利用は広まっていくことでしょう。

 また、SQLデータベースの利用方法は、データベースプログラムが違っていても基本的にはほぼ同じです。Java DBで基礎的な使い方をマスターすれば、他のデータベースプログラムでもその知識を応用して使えるようになります。

 実際の開発に入る前に、Java DBを利用するために必要な下準備を行っておきましょう。これは、環境変数にJava DB(Derby)のホームディレクトリを登録しておく、という作業です。

 システム環境変数の[詳細設定]タブにある[環境変数]ボタンをクリックし、環境変数の設定画面を呼び出してください。そして、システム環境変数の[新規]ボタンをクリックし、次のような変数を追加をしてください。

  • 変数名:DERBY_HOME
  • 変数値:C:\Program Files\Java\jdk1.6.0\db
図1システム環境変数に「DELBY_HOME」を追加する。
図1システム環境変数に「DELBY_HOME」を追加する。

 なお、変数値のパスは、JDKを標準設定のディレクトリにインストールした場合です。場所を変更してインストールした場合はそれぞれの環境に合わせて適宜変更してください。

 また、EclipseからTomcatを起動する関係上、Eclipseの起動に使っているJRE/JDKにJava DBのライブラリを追加しておきましょう。これは、Eclipseの起動で使っている(通常は、デフォルトで使用されるJRE)の「lib」フォルダ内の「ext」フォルダの中に、以下の2つのファイルをコピーしておきます。

  • derby.jar
  • derbyclient.jar

 これらのファイルは、JDKの「db」フォルダ内の「lib」フォルダ内にあります。あるいは、classpathにこれらのファイルを追加してもよいでしょう。

接続プロファイルを作成する

 では、Eclipse Web Tools Platform(以下、WTP)で、Java DBを利用してみることにしましょう。まずは、データベース関係の設定と、データベースの作成を行います。なお、Java DBを使う関係上、ここではJDK 6+WTP 2.0という組み合わせを使って説明を行うことにします。JDKに収められているJava DBに正式対応しているのはWTP 2.0からです。WTP 1.5でも利用できますが、表示や操作が異なる部分がありますので注意してください。

 まず、データベース開発を行うためのパースペクティブに切り替えましょう。[ウインドウ]-[パースペクティブを開く]-[その他]メニューを選び、現れたダイアログから[データベース開発]を選びます。このパースペクティブでは、左側にデータベース管理を行うためのデータ・ソース・エクスプローラーが、下部に「SQLの結果」というビューが表示されます。これに、この後で作成するSQLファイルのエディタを加えて、3つのビューでデータベース開発を行うことになります。

図2パースペクティブを選択するダイアログで[データベース開発]を選ぶ。
図2パースペクティブを選択するダイアログで[データベース開発]を選ぶ。

 WTPからデータベースを利用するには、「接続プロファイル」というものを作成する必要があります。これは、特定のデータベースにアクセスするための設定セットです。データ・ソース・エクスプローラーには「ODAデータ・ソース」「データベース」といったフォルダが表示されてますが、ここに、用意された接続プロファイルによって利用可能になったデータベース類が表示されるようになるのです。

 では、接続プロファイルを作成しましょう。データ・ソース・エクスプローラーの上部にあるアイコンから「新規接続プロファイル」というものを探してクリックしてください。これで新規接続プロファイルの作成ウィザード選択画面が現れます。ここで[Derby組み込みデータベース]を選びます。

図3新規接続プロファイルの作成画面で[Derby組み込みデータベース]を選ぶ。
図3新規接続プロファイルの作成画面で[Derby組み込みデータベース]を選ぶ。

 「接続プロファイルの作成」画面に進みます。ここで接続プロファイルの名前を入力します。ここでは「derby_mydata」としておきます。またウィザード終了後に自動接続するためのチェックボックスがあるので、これもオンにしておきましょう。

図4接続プロファイルの名前を入力する。
図4接続プロファイルの名前を入力する。

 「ドライバーおよび接続の詳細の指定」画面に進みます。ここで、使用するドライバーを選択し、データベースの設定を行う……のですが、現段階ではまだドライバーの設定が用意されていないはずです。ドライバーを選択するドロップダウンリストの右端にある[…]ボタンをクリックしてください。「使用可能なドライバー定義」という画面が現れます。ここで、ドライバー定義を追加します。

図5「ドライバーおよび接続の詳細の指定」画面でドロップダウンリストの[…]ボタンをクリックすると、このような画面が現れる。
図5「ドライバーおよび接続の詳細の指定」画面でドロップダウンリストの[…]ボタンをクリックすると、このような画面が現れる。

 ここで、[Derby]項目内の[10.2]を選択し、[追加]ボタンをクリックします。画面に更に新しいダイアログが開きます。ここで、使用可能なドライバー・テンプレートから[Derby][10.2]内の[Derby 10.0用 Derby組み込みJDBCドライバー]を選択して[OK]をクリックしてください。

図6 Derby 10.0用Derby組み込みJDBCドライバーを選択しOKする。
図6 Derby 10.0用Derby組み込みJDBCドライバーを選択しOKする。

 画面にドライバーの詳細設定ダイアログが開きます。ここで次のように設定をしましょう。

ドライバーの設定内容
項目説明
ドライバー名Derby 10.2用 Derby組み込み JDBCドライバー
ドライバー・ファイルデフォルトで「derby.jar」が表示されています。これを選択し、[Jar/Zipの編集]ボタンをクリックして、「C:\Program Files\Java\jdk1.6.0\db\lib\derby.jar」を選択してください。
プロパティーデータベースに関するプロパティーです。それぞれ次のようにしておきます。

データベース名: mydatabase
パスワード: test
ユーザーID: user
接続URL: jdbc:derby:C:\DerbyDatabases\mydatabase;create=true
図7 ドライバーの詳細設定ダイアログで、使用するJarファイルとデータベースのプロパティーを設定する。
図7 ドライバーの詳細設定ダイアログで、使用するJarファイルとデータベースのプロパティーを設定する。

 注意してほしいのは「接続URL」です。これは通常、「jdbc:derby:データベース名;」という形で記述します。ここでは「mydatabase」という名前でデータベースを作成します。データベースは、Cドライブの「DerbyDatabase」というフォルダ内にデータベースを保管することにしてあるため、そのパスである「C:\DerbyDatabases\mydatabase;」がデータベース名に指定されます。

 これでOKするとドライバー定義を作成し、再び「使用可能なドライバー定義」に戻ります。ここで、作成した「Derby 10.2用 Derby組み込み JDBCドライバー」が選択可能になっているはずです。これを選択して[OK]をクリックしてください。

図8作成された「Derby 10.2用 Derby組み込み JDBCドライバー」を選択する。
図8作成された「Derby 10.2用 Derby組み込み JDBCドライバー」を選択する。

 これで、ようやく「ドライバーおよび接続の詳細の指定」画面に戻ります。ドロップダウンリストからは、作成した「Derby 10.2用 Derby組み込み JDBCドライバー」が選択できますので、これを選択してください。それ以降の項目(データベース、ロケーション、ユーザ名、パスワードなど)は自動的に設定されるはずです。それらを確認したら[接続テスト]ボタンをクリックしてみてください。「pingが正常に完了しました」と表示されれば、データベースへのアクセスに成功しています。もし失敗した場合は、ここまでの設定項目をよく確認してください。

図9ドライバーを選択すると、その他の項目は自動的に設定される。
図9ドライバーを選択すると、その他の項目は自動的に設定される。

 成功したら、次へ進み、要約の内容を確認して間違いがないか確かめたら終了します。これで、「derby_mydata」という接続プロファイルが作成され、データ・ソース・エクスプローラーに表示されます。接続がうまくできていれば、その項目内に「mydatabase」というデータベースが表示されるはずです。もし接続が開始されていなければ、derby_mydataを右クリックし、<接続>メニューを選んで接続を開始します。

注意! WTP 2.0の日本語化について
 本記事を執筆時点で、まだWTP 2.0には日本語化のためのLanguage Packがリリースされていません。そこで本記事では、「Pleiades」というオープンソースの日本語化プラグインを利用して執筆しています。これはSourceForge.jpのWebページにて配布されています。

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • 掌田 津耶乃(ショウダ ツヤノ)

    三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆活動をする傍ら、ログハウスの普及活動にいそしんでいる。(掌田津耶乃のWebサイトはこちら) ※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開中。またGoogle+プロフ...

バックナンバー

連載:WTPではじめるサーバサイドJava入門

もっと読む

All contents copyright © 2005-2017 Shoeisha Co., Ltd. All rights reserved. ver.1.5