x:dataSourceSpec アクションは、JDBC データベースへの接続に必要な情報を
JDBC DataSource を使用して指定するために使用されるものです。
しかし、x:dataSourceSpec アクションでは接続は確立されません。
このアクションでは、x:select、x:modify、x:procedureCall、
または x:batch アクションによって、あるいはスクリプトレットの中で参照できるオブジェクトが作成されます。
データベース接続が確立するのはこうしたアクションが処理された時です。
構文
<x:dataSourceSpec
id = "name"
scope = "page|request|session"
initialContextFactory = "context_factory"
providerURL = "protocol:subprotocol:subname"
dataSource = "JNDI_Subcontext/logical_name"
userid = "db_user"
password = "user_password"
passwordEncrypted = "true|false" />
x:dataSourceSpec アクションには以下の属性があります。
- id
- 指定されている名前空間の中の DBConnectionSpec Bean の識別と、
そのスクリプト記述変数名の識別にも使用される名前。
指定する名前には大/小文字の区別があり、
名前はスクリプト記述言語の変数の名前指定の現行規則に従ったものとしなくてはなりません。
- scope
- 名前空間であり、この範囲内でオブジェクトが定義されます。デフォルト値は page です。
- userid
- アクセスされるデータベースの有効なユーザー ID を指定する必須の属性。
大/小文字の区別は入力した通りに保存されます。
- password
- ユーザー ID のパスワードを指定する必須の属性。大/小文字の区別は入力した通りに保存されます。
- passwordEncrypted
- password 属性の中に指定された値を暗号化するかどうかを指定するオプション属性。
デフォルト値は false です。暗号化アルゴリズムは、基と成る Bean に特有のものです。
したがって、暗号化されたパスワードを渡すためには、
パスワードの暗号化の方法を既知とするツールからパスワードを得る必要があります。
こうすることには利点があります。理由は、ご使用の JSP に読み取り可能パスワードが含まれていないからです。
- initialContextFactory
- 初期コンテキストを作成するためのクラス名またはファクトリー・クラスを指定するオプション属性。
このコンテキストは、指定された dataSource を探し出すために使用されます。
大/小文字の区別は入力した通りに保存されます。
値が指定されていない場合は、
デフォルトはシステムまたは環境変数 "java.naming.factory.initial" の中で識別されるクラスとなります。
- providerURL
- オプション属性であり、
指定した初期コンテキスト・ファクトリーに関連するネーミング・サービス・プロバイダーの構成に使用される URL を指定するもの。
このストリングは汎用 URL 構文と一致させることが必要ですが、
その特定のコンテンツ、用途、およびデフォルト値は使用される初期コンテキスト・ファクトリーに応じて変ることになります。
大/小文字の区別は入力した通りに保存されます。
- dataSource
- dataSource の JNDI 名を指定する必須の属性。大/小文字の区別は入力した通りに保存されます。
例
この例では、initialContextFactory および dataSource 属性を使用してデータベースへの接続法が指定され、
実行時にユーザーが提供するユーザー ID とパスワードの値が使用されています。
<x:dataSourceSpec id="conn1"
dataSource="jdbc/autosDatasource"
userid='<%= request.getParameter("userid") %>'
password='<%= request.getParameter("password") %>'> />