org.apache.struts.util
クラス GenericDataSource

java.lang.Object
  |
  +--org.apache.struts.util.GenericDataSource
すべての実装インタフェース:
javax.sql.DataSource

public class GenericDataSource
extends java.lang.Object
implements javax.sql.DataSource

DataSourceインタフェースの汎用的な実装です。 警告 - この実装は、異なるusername/passwordの組によってコネクション を提供する方法について関知しません。getConnection(username,password)という シグニチャを使ってこの実装を呼ぶと例外がスローされます。

スタンダードなGenericDataSource の実装は、 以下の属性をサポートします:

属性 説明
autoCommit getConnection()によって得られるコネクションを 「全てのSQLステートメントの実行を自動コミットする」ように設定したい場合にtrueにしてください。 通常のJDBCの慣例に従い、デフォルトはtrueです。
description このデータソースの簡単な説明です。この属性はインタフェースjavax.sql.DataSource によって要求されていますが、この実装の中では使われていません
driverClass このデータソースによって生成されるコネクションに使われる、JDBCドライバの完全修飾されたクラス名です。 この属性に設定されるべき値については、JDBCドライバのドキュメントを参照してください。
maxCount このデータソースによって生成されるJDBC コネクション数の最大値です。 この値は属性minCountと等しいか、それより大きくなければなりません。
minCount このデータソースによって生成されるJDBC コネクション数の最小値です。 この値は属性maxCountと等しいか、それより小さくなければなりません。
password このコネクション poolによって生成されるコネクションを確立するための、データベース用のパスワードです。 user属性に設定されるユーザ名と対になります。
pingCommand non-query型のSQLコマンドで、この値が設定されるとgetConnection()の呼び出しによってコネクションが返される前に実行されます。 このステートメントの実行によってSQLExceptionがスローされる場合、そのコネクションは無効であると判断され、削除されるでしょう。 これはコネクションの割り当ての度に実行されるので、すぐに終わるステートメントであるべきです。
pingQuery query型のSQLコマンドで(SELECT文等)、指定された場合getConnection()の呼び出しによってコネクションが返される前に実行されます。 このクエリの実行によって(もしくはこれに続く、得られたResultSetの処理によって)SQLExceptionがスローされる場合、 そのコネクションは無効であると判断され、削除されるでしょう。 これはコネクションの割り当ての度に実行されるので、すぐに終わるステートメントであるべきです。
readOnly getConnection()の呼び出しによって返されるコネクションを読み出し専用にしたい場合に、 この値をtrueに設定してください。これはさらに効率的なデータベースアクセスにつながります。 なぜなら、データベースはトランザクションをロールバックするためのundoログを保持する必要がないからです。 デフォルトはfalseです。
url 新しいコネクションを確立するときにJDBCドライバに渡される、コネクション URLです。 この値は通常jdbc:で始まり、データベースサーバがコネクションをlistenしているホストへの参照(場合によりポート番号)と、オープンされるデータベース名を含みます。 この属性に設定されるべき値については、JDBCドライバのドキュメントを参照してください。
user このコネクションプールによって生成されるコネクションを確立するための、データベース用のユーザ名です。 password属性に設定されるパスワードと対になります。

これらに加えて、addProperty()を呼び出すことでJDBCドライバに渡されるPropertiesの集合に値を追加することができます。

バージョン:
$Revision: 1.5.2.2 $ $Date: 2001/06/10 03:36:50 $
作成者:
Craig R. McClanahan
, Ted Husted

フィールドの概要
protected  int activeCount
          このデータソースによって既に生成されたコネクション数です。
protected  boolean autoCommit
          新しく生成されるコネクションに使用される、自動コミット設定のデフォルト値です。
protected  boolean closed
          このデータソースが既にクローズされたかどうかを表します。
protected  java.util.LinkedList connections
          既に生成済みだが現在使われていない(関連するラッパークラスにラップされた) コネクションのリストです。
protected  int debug
          このデータソースに関するデバッグレベルです。
protected  java.lang.String description
          このデータソースの説明です。
protected  java.sql.Driver driver
          コネクションファクトリとして利用されるJDBCドライバです。
protected  java.lang.String driverClass
          使用するJDBCドライバのJavaクラスです。
protected  int loginTimeout
          このデータソースのコネクションタイムアウト値です。
protected  java.io.PrintWriter logWriter
          このデータソース用のログライターです。
protected  int maxCount
          生成されるコネクションの最大数です。
protected  int minCount
          生成されるコネクションの最小数です。
protected  java.lang.String password
          コネクションの確立に使われるデータベースパスワードです。
protected  java.lang.String pingCommand
          割り当てられたコネクションの生存確認に用いられるnon-query型のSQLコマンドです。
protected  java.lang.String pingQuery
          割り当てられたコネクションの生存確認に用いられるquery型のSQLコマンドです。
protected  java.util.Properties properties
          割り当てられたコネクションの生存確認に用いられるnon-query型のSQLコマンドです。
protected  boolean readOnly
          新しく生成されるコネクションに使用される、読み出し専用設定のデフォルト値です。
private static java.lang.String SQLEXCEPTION_GETCONNECTION
           
protected  java.lang.String url
          オープンされるデータベースコネクションのJDBC URLです。
protected  int useCount
          このデータソースで生成されたコネクションのうち、現在使用中の数です。
protected  java.lang.String user
          コネクションの確立に使われるデータベースユーザ名です。
 
コンストラクタの概要
GenericDataSource()
           
 
メソッドの概要
 void addProperty(java.lang.String name, java.lang.String value)
          コネクションに使用されるコネクションの属性リストに、汎用的な属性を追加します。
 void close()
          このデータソースによって生成された全てのコネクションをクローズします。
protected  java.sql.Connection createConnection()
          対応するラッパーにラップされた新しいJDBCコネクションを生成、設定して返します。
 int getActiveCount()
           
 boolean getAutoCommit()
           
 java.sql.Connection getConnection()
          データベースコネクションの確立を試みます。
 java.sql.Connection getConnection(java.lang.String username, java.lang.String password)
          データベースコネクションの確立を試みます。
 int getDebug()
           
 java.lang.String getDescription()
           
 java.lang.String getDriverClass()
           
 int getLoginTimeout()
          このデータソースのコネクションタイムアウト値を返します。
 java.io.PrintWriter getLogWriter()
          このデータソース用のログライターを返します。
 int getMaxCount()
           
 int getMinCount()
           
 java.lang.String getPassword()
           
 java.lang.String getPingCommand()
           
 java.lang.String getPingQuery()
           
 boolean getReadOnly()
           
 java.lang.String getUrl()
           
 int getUseCount()
           
 java.lang.String getUser()
           
protected  void log(java.lang.String message)
          ログライターが設定されていれば、そこに指定されたメッセージを出力します。
protected  void log(java.lang.String message, java.lang.Throwable throwable)
          ログライターが設定されていれば、そこに指定されたメッセージと例外を出力します。
 void open()
          このデータソースに適合する最初のコネクションをオープンします。
protected  void ping(java.sql.Connection conn)
          指定されたコネクションに設定されたpingCommandpingQuery を実行し、途中で発生したSQLExceptionを スローします。
(パッケージプライベート)  void returnConnection(GenericConnection conn)
          このコネクションを利用可能なコネクションプールに返却します。
 void setAutoCommit(boolean autoCommit)
           
 void setDebug(int debug)
           
 void setDescription(java.lang.String description)
           
 void setDriverClass(java.lang.String driverClass)
           
 void setLoginTimeout(int loginTimeout)
          このデータソースのコネクションタイムアウト値を設定します。
 void setLogWriter(java.io.PrintWriter logWriter)
          このデータソース用のログライターを設定します。
 void setMaxCount(int maxCount)
           
 void setMinCount(int minCount)
           
 void setPassword(java.lang.String password)
           
 void setPingCommand(java.lang.String pingCommand)
           
 void setPingQuery(java.lang.String pingQuery)
           
 void setReadOnly(boolean readOnly)
           
 void setUrl(java.lang.String url)
           
 void setUser(java.lang.String user)
           
 java.lang.String toString()
          このコンポーネントの文字列による説明を返します。
 
クラス java.lang.Object から継承したメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

フィールドの詳細

SQLEXCEPTION_GETCONNECTION

private static final java.lang.String SQLEXCEPTION_GETCONNECTION
関連項目:
定数フィールド値

closed

protected boolean closed
このデータソースが既にクローズされたかどうかを表します。


connections

protected java.util.LinkedList connections
既に生成済みだが現在使われていない(関連するラッパークラスにラップされた) コネクションのリストです。


driver

protected java.sql.Driver driver
コネクションファクトリとして利用されるJDBCドライバです。


loginTimeout

protected int loginTimeout
このデータソースのコネクションタイムアウト値です。


logWriter

protected java.io.PrintWriter logWriter
このデータソース用のログライターです。


activeCount

protected int activeCount
このデータソースによって既に生成されたコネクション数です。


autoCommit

protected boolean autoCommit
新しく生成されるコネクションに使用される、自動コミット設定のデフォルト値です。


debug

protected int debug
このデータソースに関するデバッグレベルです。


description

protected java.lang.String description
このデータソースの説明です。


driverClass

protected java.lang.String driverClass
使用するJDBCドライバのJavaクラスです。


maxCount

protected int maxCount
生成されるコネクションの最大数です。


minCount

protected int minCount
生成されるコネクションの最小数です。


password

protected java.lang.String password
コネクションの確立に使われるデータベースパスワードです。


pingCommand

protected java.lang.String pingCommand
割り当てられたコネクションの生存確認に用いられるnon-query型のSQLコマンドです。


pingQuery

protected java.lang.String pingQuery
割り当てられたコネクションの生存確認に用いられるquery型のSQLコマンドです。


properties

protected java.util.Properties properties
割り当てられたコネクションの生存確認に用いられるnon-query型のSQLコマンドです。


readOnly

protected boolean readOnly
新しく生成されるコネクションに使用される、読み出し専用設定のデフォルト値です。


url

protected java.lang.String url
オープンされるデータベースコネクションのJDBC URLです。


useCount

protected int useCount
このデータソースで生成されたコネクションのうち、現在使用中の数です。


user

protected java.lang.String user
コネクションの確立に使われるデータベースユーザ名です。

コンストラクタの詳細

GenericDataSource

public GenericDataSource()
メソッドの詳細

addProperty

public void addProperty(java.lang.String name,
                        java.lang.String value)
コネクションに使用されるコネクションの属性リストに、汎用的な属性を追加します。

パラメータ:
name - 属性名
value - 対応する属性値

getActiveCount

public int getActiveCount()

getAutoCommit

public boolean getAutoCommit()

setAutoCommit

public void setAutoCommit(boolean autoCommit)

getDebug

public int getDebug()

setDebug

public void setDebug(int debug)

getDescription

public java.lang.String getDescription()

setDescription

public void setDescription(java.lang.String description)

getDriverClass

public java.lang.String getDriverClass()

setDriverClass

public void setDriverClass(java.lang.String driverClass)

getMaxCount

public int getMaxCount()

setMaxCount

public void setMaxCount(int maxCount)

getMinCount

public int getMinCount()

setMinCount

public void setMinCount(int minCount)

getPassword

public java.lang.String getPassword()

setPassword

public void setPassword(java.lang.String password)

getPingCommand

public java.lang.String getPingCommand()

setPingCommand

public void setPingCommand(java.lang.String pingCommand)

getPingQuery

public java.lang.String getPingQuery()

setPingQuery

public void setPingQuery(java.lang.String pingQuery)

getReadOnly

public boolean getReadOnly()

setReadOnly

public void setReadOnly(boolean readOnly)

getUrl

public java.lang.String getUrl()

setUrl

public void setUrl(java.lang.String url)

getUseCount

public int getUseCount()

getUser

public java.lang.String getUser()

setUser

public void setUser(java.lang.String user)

getConnection

public java.sql.Connection getConnection()
                                  throws java.sql.SQLException
データベースコネクションの確立を試みます。

定義:
インタフェース javax.sql.DataSource 内の getConnection
例外:
java.sql.SQLException - データベースアクセスエラーが発生するとスローされます。

getConnection

public java.sql.Connection getConnection(java.lang.String username,
                                         java.lang.String password)
                                  throws java.sql.SQLException
データベースコネクションの確立を試みます。 警告 - この実装では、ここで指定されたユーザ名とパスワードはサポートされません。

定義:
インタフェース javax.sql.DataSource 内の getConnection
パラメータ:
username - このコネクションの為のデータベースのユーザ名
password - このコネクションの為のデータベースのパスワード
例外:
java.sql.SQLException - データベースアクセスエラーが発生したときスローされます。

getLoginTimeout

public int getLoginTimeout()
                    throws java.sql.SQLException
このデータソースのコネクションタイムアウト値を返します。

定義:
インタフェース javax.sql.DataSource 内の getLoginTimeout
例外:
java.sql.SQLException - データベースアクセスエラーが発生した場合にスローされます。

getLogWriter

public java.io.PrintWriter getLogWriter()
                                 throws java.sql.SQLException
このデータソース用のログライターを返します。

定義:
インタフェース javax.sql.DataSource 内の getLogWriter
例外:
java.sql.SQLException - データベースアクセスエラーが発生した場合にスローされます。

setLoginTimeout

public void setLoginTimeout(int loginTimeout)
                     throws java.sql.SQLException
このデータソースのコネクションタイムアウト値を設定します。

定義:
インタフェース javax.sql.DataSource 内の setLoginTimeout
パラメータ:
loginTimeout - 新しいコネクションタイムアウト値
例外:
java.sql.SQLException - データベースアクセスエラーが発生した場合にスローされます。

setLogWriter

public void setLogWriter(java.io.PrintWriter logWriter)
                  throws java.sql.SQLException
このデータソース用のログライターを設定します。

定義:
インタフェース javax.sql.DataSource 内の setLogWriter
パラメータ:
logWriter - 新しいログライター
例外:
java.sql.SQLException - データベースアクセスエラーが発生した場合にスローされます。

close

public void close()
           throws java.sql.SQLException
このデータソースによって生成された全てのコネクションをクローズします。

例外:
java.sql.SQLException - データベースアクセスエラーが発生した場合にスローされます。

open

public void open()
          throws java.sql.SQLException
このデータソースに適合する最初のコネクションをオープンします。

例外:
java.sql.SQLException - データベースアクセスエラーが発生した場合にスローされます。

toString

public java.lang.String toString()
このコンポーネントの文字列による説明を返します。

オーバーライド:
クラス java.lang.Object 内の toString

createConnection

protected java.sql.Connection createConnection()
                                        throws java.sql.SQLException
対応するラッパーにラップされた新しいJDBCコネクションを生成、設定して返します。

例外:
java.sql.SQLException - データベースアクセスエラーが発生した場合にスローされます。

log

protected void log(java.lang.String message)
ログライターが設定されていれば、そこに指定されたメッセージを出力します。

パラメータ:
message - ログ出力されるメッセージ

log

protected void log(java.lang.String message,
                   java.lang.Throwable throwable)
ログライターが設定されていれば、そこに指定されたメッセージと例外を出力します。

パラメータ:
message - ログ出力されるメッセージ
throwable - ログ出力される例外

ping

protected void ping(java.sql.Connection conn)
             throws java.sql.SQLException
指定されたコネクションに設定されたpingCommandpingQuery を実行し、途中で発生したSQLExceptionを スローします。

パラメータ:
conn - 生存確認されるコネクション
java.sql.SQLException

returnConnection

void returnConnection(GenericConnection conn)
このコネクションを利用可能なコネクションプールに返却します。

パラメータ:
conn - 返却されるコネクション


このドキュメントは、Ja-Jakartaにより訳されました。コメントがある場合は、report@jajakarta.orgまでお願いします。
Copyright (C) 2000-2002 - Apache Software Foundation