ダイナミックな Web サイトを生成する最も一般的な方法は、データベースを使用することです。Web アプリケーションはユーザーリクエストから入力を解釈し、データベースに保管されたデータを使用してダイナミックページで応答します。このセクションでは、JDBC (Java Database Connectivity:Java データベース接続) メカニズムを説明し、JRun データソースを使用して Web アプリケーションのデータベースにアクセスする方法を説明します。
JRun のインストールには、PointBase Embedded データベースが含まれています。JRun は、いくつかのサンプルアプリケーションでこのデータベースを使用しますが、Web アプリケーションでもこれを使用できます。データベースの使用方法の詳細については、『JRun 管理者ガイド』を参照するか、PointBase ヘルプファイル (<JRun のルートディレクトリ>/pointbase/docs/server_embedded/GettingStarted/serverindex.html) をご覧ください。
JRun でのデータベースアクセスは、JDBC API (Java database connectivity API:Java データベース接続 API) を使用して実行します。JDBC は、Sun が提供するドライバマネージャと JDBC ドライバを使用します。 JDBC ドライバは、Sun によって JDBC-ODBC ブリッジが、サードパーティーベンダーからは他の JDBC ドライバが提供されています。
次の表で説明されているように、JDBC ドライバにはいくつかのタイプがあります。
JRun は、Type 4 JDBC ドライバ付きで販売され、これを使用してさまざまなリレーショナルデータベースにアクセスできます。詳細については、JRun ドキュメントとともに配布されている『DataDirect Connect JDBC User's Guide and Reference』を参照してください。
Web アプリケーションにはデータベースに接続する方法が数多くあります。最も一般的な 2 つの方法は、JRun データソースを使用する方法と手動接続を作成する方法です。 次の表で、これら 2 つの方法を説明します。
接続方法 |
説明 |
---|---|
JRun データソース |
JMC を使用して JRun データソースを設定した場合、データベースに接続するには、アプリケーションでデータソース名による JNDI 検索を実行する必要があるだけです。この処理については、 「JRun データソースの使用」 で説明します。 JRun データソース接続方法を使用します。ビルトイン JRun コネクションプールメカニズムを透過的に使用します。 JRun には、ユーザーが使用できる Merant データベースドライバがあります。JMC では、ドライバクラス名、URL、ポートなどの多くの一般的な JDBC ドライバの設定に関して、ドライバ特有のデフォルト設定が用意されています。これらの設定は変更することもでき、必要な場合は、他の JDBC ドライバを使用することもできます。 詳細については、JMC オンラインヘルプを参照してください。JMC で JDBC データソースを設定する手順については、 『JRun 入門』を参照してください。 |
手動データベース 接続 |
Web アプリケーションで JDBC 接続を手動で作成するには、 コードに次の情報を与える必要があります。
手動で作成したデータベース接続をプールするには、カスタムのコネクションプールメカニズムを実装する必要があります。 ドライバクラス名とデータベース URL の詳細については、ご使用の JDBC ドライバのドキュメントを参照してください。 |
JRun データソースによって、ビルトインコネクションプールだけでなく、サーブレットの移植性が与えられます。マクロメディアでは、JRun ではこの方法を使用してデータベースにアクセスすることをお勧めします。次のセクションでは、JRun データソース使用の利点を説明します。
JRun には JMC に [JDBC データソース] パネルがあり、ここでデータソースの作成、編集、削除が簡単にできます。詳細については、JMC オンラインヘルプを参照してください。
データベースに接続するには、次の情報を与える必要があります。
JRun データソースを使用すると、コードは、Web アプリケーションにハードコードされた JDBC ドライバ情報を使用するのではなく、データソース名だけを使用してデータソースを参照します。データソースは 1 度だけ設定します。これによって、サーブレット、EJB、JSP がいくつでもこのデータソースにその名前でアクセスできます。
データソースを使用して、JMC のデータベース定義を更新できます。データベースとデータベースサーバの情報はコードの外に保管されるので、その情報はアプリケーションを再コンパイルせずにいつでも変更できます。
データソース使用によるもう 1 つの利点は、ユーザー名やパスワードなどの重要なデータベース接続情報を JRun 管理者以外のすべての人物から隠すことができることです。Web アプリケーション開発者は、この情報を指定せずにデータベースに接続できます。
データベースとの接続にはコストがかかります。JRun データソースは、ビルトインプールメカニズムを使用します。JRun 定義のデータソース使用による利点は、JRun がデータベースコネクションプールを作成することです。データベースに接続するときは、このプールメカニズムによって、確立された接続をプールから取得できます。接続を作成する必要がないので、応答時間はずっと短くなります。
アプリケーションで接続を閉じると、JRun は実際に接続を閉じるのではなく、その接続をプールに返します。
コネクションプールをオフにして、独自のカスタムコネクションプールを実装できます。データソース設定の詳細については、JMC オンラインヘルプを参照してください。
JRun には、samples JRun サーバのためにあらかじめ定義された 3 つのデフォルトデータソースがあります。これらのデータソースは、 com.pointbase.jdbc.jdbcUniversalDriver
データベースドライバを使用します。次の表で、これらのデータソースを説明します。
JRun データソースを使用すると、InitialContext オブジェクトへの JNDI ルックアップを通じて、データソースにアクセスできます。サーブレットでデータソースを使用するには、JDBC API を使用する次のパッケージをインポートする必要があります。
javax.naming.InitialContext
javax.sql.DataSource
java.sql.Connection
java.sql.ResultSet
さらに、データベース接続を使用する方法に応じて、次の Java パッケージから 1 つをインポートする必要があります。
java.sql.Statement
java.sql.PreparedStatement
次のコード例では、JRun データソースサービスを使用して JDBC データソース情報にアクセスします。
...
import javax.naming.*; import javax.sql.*; import java.io.*; import javax.servlet.*; import javax.servlet.http.*; ... Connection dbConnection = null; ResultSet dbResultSet = null; ResultSetMetaData rsmd = null; try { InitialContext ctx = new InitialContext(); DataSource ds = (DataSource) ctx.lookup("compass"); dbConnection = ds.getConnection(); Statement stmt = dbConnection.createStatement(); dbResultSet = stmt.executeQuery("SELECT * FROM user"); rsmd = dbResultSet.getMetaData(); } catch (Exception e) { } ... //結果セットと結果セットのメタデータをここで処理します。 ...
サンプルサーブレットを表示するには、samples JRun サーバを起動し、ブラウザで http://localhost:8200/techniques を開きます。
Web アプリケーションでデータベースのパフォーマンスを改善するには、次のテクニックを使用します。
詳細とコード例については、 「JDBC の最適化」 を参照してください。