jp.littlesoft.sql
クラス SQLAdaptor

java.lang.Object
  上位を拡張 jp.littlesoft.sql.SQLAdaptor
すべての実装されたインタフェース:
Serializable
直系の既知のサブクラス:
SQLDataProviderImpl, SQLDataResolverImpl

public class SQLAdaptor
extends Object
implements Serializable

SQLアダプタクラス。

バージョン:
1.3.0
作成者:
LittleSoft Corporation
関連項目:
直列化された形式

入れ子のクラスの概要
static class SQLAdaptor.SQLServerType
          DBMSの種類を管理するクラス。
static class SQLAdaptor.TransactionIsolationType
          トランザクション遮断レベルを管理するクラス。
 
フィールドの概要
protected  boolean getPrimaryKeyAvailable
          getPrimaryKeyを利用可能かどうかを表します。
protected  Connection jdbcConnection
          コネクションオブジェクトです。
protected static org.apache.log4j.Logger logger
          ログ出力オブジェクトです。
protected  int queryTimeout
          クエリーのタイムアウト時間を表します。
 
コンストラクタの概要
SQLAdaptor()
          コンストラクタ。
 
メソッドの概要
 void bindParamValues(CallableStatement cstmt, Params<?> params)
          CallableStatement内のパラメータにDataMapのパラメータの値を割り当てます。
 void bindParamValues(PreparedStatement pstmt, Params<?> params)
          PreparedStatement内のパラメータにParamsのパラメータの値を割り当てます。
 void bindResultValues(CallableStatement cstmt, Params<?> params)
          クエリー実行後のCallableStatementのout、inoutパラメータの値をParamsのパラメータに設定します。
protected  void checkConnection()
          JDBCのConnectionを保持しているかどうか調べます。
 void close()
          データベース接続を切断します。
 void connect()
          データベースに接続します。
 void connect(String newDriverName, String newDbUrl, String newDbUserName, String newDbPassword, Properties p)
          データベースに接続します。
 Statement createStatement()
          SQL文をデータベースに送るためのjava.sql.Statementオブジェクトを生成します。
protected  void finalize()
          インスタンスが破棄されるときの処理です。
 String getClientId()
          このJDBCAdaptorオブジェクトの識別子を取得します。
 String getClientId(boolean flag)
          このJDBCAdaptorオブジェクトの識別子を取得します。
 Validator getColumnValidator()
          文字型カラム用の検証クラスのインスタンスを取得します。
 Connection getConnection()
          JDBCのConnectionオブジェクトを取得します。
 Properties getConnectProperty()
          接続時に渡すプロパティ変数を取得します。
 String getDBPassword()
          ターゲットDBMSのパスワードを取得します。
 String getDBURL()
          ターゲットDBMSのURLを取得します。
 String getDBUserName()
          ターゲットDBMSのユーザー名を取得します。
 String getJDBCDriverClassName()
          ターゲットDBMSのJDBCドライバークラス名を取得します。
 List<String> getPrimaryKeyColumns(String catalog, String schema, String tableName)
          指定されたテーブルの主キー列を取得します。
 int getQueryTimeout()
          クエリーのタイムアウト時間を取得します。
 SQLAdaptor.SQLServerType getSQLServerType()
          SQLServerTypeを取得します。
 boolean isAutoCommit()
          自動コミットを行うかどうか調べます。
 boolean isConnecting()
          データベースに接続しているかどうか調べます。
 boolean isConnectionOwner()
          現在のコネクションは当オブジェクト内部でされたものかどうか調べます。
 boolean isSearchMetaDataByLowerCase()
          メタデータ検索時に、更新テーブル名を英小文字に変換するかどうかを取得します。
 boolean isSearchMetaDataByUpperCase()
          メタデータ検索時に、更新テーブル名を大文字に変換するかどうかを取得します。
 boolean isSearchMetaDataWithinSchema()
          メタデータ検索時に、スキーマ名を使用するかどうかを取得します。
 CallableStatement prepareCall(String sqlText)
          データベースのストアドプロシージャを呼び出すためのjava.sql.CallableStatementオブジェクトを生成します。
 PreparedStatement preparedStatement(String sqlText)
          パラメータ付きSQL文をデータベースに送るためのjava.sql.PreparedStatementオブジェクトを生成します。
 void setAutoCommit(boolean newAutoCommit)
          自動的なコミットを行うかどうか設定します。
 void setClientId(String clientId)
          このJDBCAdaptorオブジェクトの識別子を設定します。
 void setColumnValidator(Validator validator)
          Validatorを設定します。
 void setConnection(Connection newJdbcConnection)
          JDBCのConnectionオブジェクトを設定します。
 void setConnectProperty(Properties p)
          接続時に渡すプロパティ変数を設定します。
 void setDBPassword(String newDbPassword)
          ターゲットDBMSのパスワードを設定します。
 void setDBURL(String newDbUrl)
          ターゲットDBMSのURLを設定します。
 void setDBUserName(String newDbUserName)
          ターゲットDBMSのユーザー名を設定します。
 void setJDBCDriverClassName(String newDriverName)
          ターゲットDBMSのJDBCドライバークラス名を設定します。
 void setQueryTimeout(int sec)
          クエリーのタイムアウト時間を設定します。
 void setSearchMetaDataByLowerCase(boolean newSearchMetaDataByLowerCase)
          メタデータ検索時に、更新テーブル名を英小文字に変換するかどうかを設定します。
 void setSearchMetaDataByUpperCase(boolean newSearchMetaDataByUpperCase)
          メタデータ検索時に、更新テーブル名を大文字に変換するかどうかを設定します。
 void setSearchMetaDataWithinSchema(boolean newSearchMetaDataWithinSchema)
          メタデータ検索時に、スキーマ名を使用するかどうかを設定します。
 void setSQLServerType(SQLAdaptor.SQLServerType sqlServerType)
          SQLServerTypeの設定します。
 void setTransactionIsolation(int newIsolation)
          JDBCのトランザクションアイソレーションレベルを指定されたものに変更することを試みます。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

jdbcConnection

protected transient Connection jdbcConnection
コネクションオブジェクトです。


logger

protected static final transient org.apache.log4j.Logger logger
ログ出力オブジェクトです。


queryTimeout

protected int queryTimeout
クエリーのタイムアウト時間を表します。


getPrimaryKeyAvailable

protected boolean getPrimaryKeyAvailable
getPrimaryKeyを利用可能かどうかを表します。

True:利用可、False:利用不可

コンストラクタの詳細

SQLAdaptor

public SQLAdaptor()
コンストラクタ。

メソッドの詳細

getConnection

public Connection getConnection()
JDBCのConnectionオブジェクトを取得します。

戻り値:
JDBCのConnectionオブジェクト

setConnection

public void setConnection(Connection newJdbcConnection)
                   throws LSSQLException
JDBCのConnectionオブジェクトを設定します。

APサーバーのコネクションを利用する場合は、このメソッドを使用して、 APサーバーから取得したjava.sql.Connectionを設定してください。

パラメータ:
newJdbcConnection - JDBCのConnection
例外:
jp.littlesoft.sql.NJSQLException - 例外発生時
LSSQLException

setDBURL

public void setDBURL(String newDbUrl)
ターゲットDBMSのURLを設定します。

パラメータ:
newDbUrl - DBのURL

getDBURL

public String getDBURL()
ターゲットDBMSのURLを取得します。

戻り値:
DBのURL

setDBUserName

public void setDBUserName(String newDbUserName)
ターゲットDBMSのユーザー名を設定します。

パラメータ:
newDbUserName - DBの接続ユーザー名

getDBUserName

public String getDBUserName()
ターゲットDBMSのユーザー名を取得します。

戻り値:
DBの接続ユーザー名

setDBPassword

public void setDBPassword(String newDbPassword)
ターゲットDBMSのパスワードを設定します。

パラメータ:
newDbPassword - DBのパスワード

getDBPassword

public String getDBPassword()
ターゲットDBMSのパスワードを取得します。

戻り値:
DBのパスワード

setJDBCDriverClassName

public void setJDBCDriverClassName(String newDriverName)
ターゲットDBMSのJDBCドライバークラス名を設定します。

パラメータ:
newDriverName - JDBCドライバーのクラス名

getJDBCDriverClassName

public String getJDBCDriverClassName()
ターゲットDBMSのJDBCドライバークラス名を取得します。

戻り値:
JDBCドライバーのクラス名

setConnectProperty

public void setConnectProperty(Properties p)
接続時に渡すプロパティ変数を設定します。

プロパティには "user", "password" は含めないでください。

パラメータ:
p - 接続時に渡すプロパティ

getConnectProperty

public Properties getConnectProperty()
接続時に渡すプロパティ変数を取得します。

プロパティには user, password は含まれません。

戻り値:
接続時に渡すプロパティ

connect

public void connect(String newDriverName,
                    String newDbUrl,
                    String newDbUserName,
                    String newDbPassword,
                    Properties p)
             throws LSSQLException
データベースに接続します。

当メソッドはsetJDBCConnectionによる外部コネクション利用と排他的です。

パラメータ:
newDriverName - JDBCドライバーのクラス名
newDbUrl - DBのURL
newDbUserName - DBのユーザー名
newDbPassword - DBのパスワード
p - 接続時に渡すプロパティ("user", "password"は除く)
例外:
jp.littlesoft.sql.NJSQLException - 例外発生時
LSSQLException

connect

public void connect()
             throws LSSQLException
データベースに接続します。

当メソッドはsetJDBCConnectionによる外部コネクション利用と排他的です。

例外:
jp.littlesoft.sql.NJSQLException - 例外発生時
LSSQLException

close

public void close()
           throws LSSQLException
データベース接続を切断します。

例外:
jp.littlesoft.sql.NJSQLException - 例外発生時
LSSQLException

finalize

protected void finalize()
                 throws Throwable
インスタンスが破棄されるときの処理です。

JDBCのConnectionオブジェクトが残っていれば切断します。

オーバーライド:
クラス Object 内の finalize
例外:
Throwable - 例外発生時

isConnecting

public boolean isConnecting()
データベースに接続しているかどうか調べます。

戻り値:
True:接続、False:未接続

isConnectionOwner

public boolean isConnectionOwner()
現在のコネクションは当オブジェクト内部でされたものかどうか調べます。

戻り値:
True:内部、False:外部
関連項目:
#setJDBCConnection

setAutoCommit

public void setAutoCommit(boolean newAutoCommit)
                   throws LSSQLException
自動的なコミットを行うかどうか設定します。

※JDBCコネクションが確立した状態でないと設定できません。

パラメータ:
newAutoCommit - True:自動的コミットを行う、False:自動コミットを行わない
例外:
jp.littlesoft.sql.NJSQLException - 例外発生時
LSSQLException

isAutoCommit

public boolean isAutoCommit()
                     throws LSSQLException
自動コミットを行うかどうか調べます。

戻り値:
True:自動的コミットを行う、False:自動コミットを行わない
例外:
LSSQLException - 例外発生時

checkConnection

protected void checkConnection()
                        throws LSSQLException
JDBCのConnectionを保持しているかどうか調べます。

保持していない場合、例外が発生します。

例外:
LSSQLException - 接続を保持していない場合

createStatement

public Statement createStatement()
                          throws LSSQLException
SQL文をデータベースに送るためのjava.sql.Statementオブジェクトを生成します。

内部で呼び出しています。
開発者がこのメソッドを呼び出す必要はありません。

戻り値:
Statementオブジェクト
例外:
LSSQLException - 例外発生時
関連項目:
Statement

preparedStatement

public PreparedStatement preparedStatement(String sqlText)
                                    throws LSSQLException,
                                           DataException
パラメータ付きSQL文をデータベースに送るためのjava.sql.PreparedStatementオブジェクトを生成します。

SQL文中のプレースホルダは"?"で指定します。

内部で呼び出しています。
開発者がこのメソッドを呼び出す必要はありません。

パラメータ:
sqlText - SQL文
戻り値:
PreparedStatementオブジェクト
例外:
LSSQLException - 例外発生時
jp.littlesoft.sql.DataException - 例外発生時
DataException
関連項目:
PreparedStatement

prepareCall

public CallableStatement prepareCall(String sqlText)
                              throws LSSQLException,
                                     DataException
データベースのストアドプロシージャを呼び出すためのjava.sql.CallableStatementオブジェクトを生成します。

SQL文中のプレースホルダは"?"で指定します。
実行するステートメントは次の様な形式で設定します。
"{call <stored procedure name> (?,?,... )}"
"? = {call <stored procedure name> (?,?,... )}"

内部で呼び出しています。
開発者がこのメソッドを呼び出す必要はありません。

パラメータ:
sqlText - SQL文
戻り値:
CallableStatementオブジェクト
例外:
LSSQLException - 例外発生時
jp.littlesoft.sql.DataException - 例外発生時
DataException
関連項目:
CallableStatement

setClientId

public void setClientId(String clientId)
このJDBCAdaptorオブジェクトの識別子を設定します。

この識別子はログ出力に利用されます。

パラメータ:
clientId - このJDBCAdaptorの識別子

getClientId

public String getClientId()
このJDBCAdaptorオブジェクトの識別子を取得します。

戻り値:
このJDBCAdaptorの識別子

getClientId

public String getClientId(boolean flag)
このJDBCAdaptorオブジェクトの識別子を取得します。

flagがtrueの場合、ClientIdが設定されていない場合は、Nameプロパティの値を返します。

パラメータ:
flag - ClientIdが設定されていない場合に、Nameプロパティの値を返すか?
戻り値:
このJDBCAdaptorの識別子

setSQLServerType

public void setSQLServerType(SQLAdaptor.SQLServerType sqlServerType)
SQLServerTypeの設定します。

SQLServerTypeクラスの定数を使用して、DBMSの種類を設定します。
この値により、JDBCAdaptorはDBMS毎の差異を吸収します。
この差異とはJDBCAdaptorHelperが吸収している粒度の大きい差異ではなく SQLの構文等非常に繊細な部分で発生する差異です。

なお、SQLServerTypeはJDBCDriverClassNameを設定することで自動的に設定されますので 通常はこのメソッドを使用する必要はありません。

パラメータ:
sqlServerType - DBMSの種類を示す整数
関連項目:
SQLAdaptor.SQLServerType

getSQLServerType

public SQLAdaptor.SQLServerType getSQLServerType()
SQLServerTypeを取得します。

戻り値:
DBMSの種類を示す整数
関連項目:
SQLAdaptor.SQLServerType

setColumnValidator

public void setColumnValidator(Validator validator)
Validatorを設定します。

パラメータ:
validator - Validatorのインスタンス

getColumnValidator

public Validator getColumnValidator()
文字型カラム用の検証クラスのインスタンスを取得します。

戻り値:
文字型カラム用の検証クラスのインスタンス

setQueryTimeout

public void setQueryTimeout(int sec)
クエリーのタイムアウト時間を設定します。

タイムアウト時間には、0以上の値を設定してください。
0は無制限を意味します。
マイナスの値を設定した場合には現在設定されているタイムアウト時間をそのまま利用します。

※注意 使用するJDBCドライバによっては有効にならないこともあります。
(クエリー実行前にjava.sql.Statement#setQueryTimeoutメソッドを呼び出しています。)

※注意 使用するJDBCドライバによっては有効にならないこともあります。
(クエリー実行前にjava.sql.Statement#setQueryTimeoutメソッドを呼び出しています。)

パラメータ:
sec - クエリーのタイムアウト時間(単位:秒) デフォルト:-1(現在の値をそのまま利用)
関連項目:
Statement.setQueryTimeout(int)

getQueryTimeout

public int getQueryTimeout()
クエリーのタイムアウト時間を取得します。

戻り値:
クエリーのタイムアウト時間(単位:秒)

getPrimaryKeyColumns

public List<String> getPrimaryKeyColumns(String catalog,
                                         String schema,
                                         String tableName)
                                  throws SQLException,
                                         DataException
指定されたテーブルの主キー列を取得します。

パラメータ:
catalog - カタログ名
schema - スキーマ名
tableName - テーブル名
戻り値:
主キーを構成するカラム名を取得のリスト
例外:
SQLException - SQL例外発生時
DataException - 例外発生時

setSearchMetaDataByUpperCase

public void setSearchMetaDataByUpperCase(boolean newSearchMetaDataByUpperCase)
メタデータ検索時に、更新テーブル名を大文字に変換するかどうかを設定します。

パラメータ:
newSearchMetaDataByUpperCase - 大文字変換するかどうか

isSearchMetaDataByUpperCase

public boolean isSearchMetaDataByUpperCase()
メタデータ検索時に、更新テーブル名を大文字に変換するかどうかを取得します。

戻り値:
大文字変換するかどうか

setSearchMetaDataByLowerCase

public void setSearchMetaDataByLowerCase(boolean newSearchMetaDataByLowerCase)
メタデータ検索時に、更新テーブル名を英小文字に変換するかどうかを設定します。

パラメータ:
newSearchMetaDataByLowerCase - 英小文字変換するかどうか

isSearchMetaDataByLowerCase

public boolean isSearchMetaDataByLowerCase()
メタデータ検索時に、更新テーブル名を英小文字に変換するかどうかを取得します。

戻り値:
英小文字変換するかどうか

setSearchMetaDataWithinSchema

public void setSearchMetaDataWithinSchema(boolean newSearchMetaDataWithinSchema)
メタデータ検索時に、スキーマ名を使用するかどうかを設定します。

パラメータ:
newSearchMetaDataWithinSchema - メタデータ検索時に、スキーマ名を使用するかどうか

isSearchMetaDataWithinSchema

public boolean isSearchMetaDataWithinSchema()
メタデータ検索時に、スキーマ名を使用するかどうかを取得します。

戻り値:
メタデータ検索時に、スキーマ名を使用するかどうか

bindParamValues

public void bindParamValues(PreparedStatement pstmt,
                            Params<?> params)
                     throws LSSQLException,
                            DataException
PreparedStatement内のパラメータにParamsのパラメータの値を割り当てます。

パラメータ:
pstmt - PreparedStatementオブジェクト
params - DataMapオブジェクト
例外:
LSSQLException - 例外発生時
jp.littlesoft.data.DataException - 例外発生時
DataException

bindParamValues

public void bindParamValues(CallableStatement cstmt,
                            Params<?> params)
                     throws LSSQLException,
                            DataException
CallableStatement内のパラメータにDataMapのパラメータの値を割り当てます。

以下の処理を行ないます。
・in, inoutパラメータの値設定
・inout, outパラメータの登録

パラメータ:
cstmt - CallableStatementオブジェクト
params - DataMapオブジェクト
例外:
LSSQLException - 例外発生時
jp.littlesoft.data.DataException - 例外発生時
DataException

bindResultValues

public void bindResultValues(CallableStatement cstmt,
                             Params<?> params)
                      throws LSSQLException,
                             DataException
クエリー実行後のCallableStatementのout、inoutパラメータの値をParamsのパラメータに設定します。

パラメータ:
cstmt - CallableStatementオブジェクト
params - Paramsオブジェクト
例外:
LSSQLException - 例外発生時
jp.littlesoft.data.DataException - 例外発生時
DataException

setTransactionIsolation

public void setTransactionIsolation(int newIsolation)
                             throws LSSQLException
JDBCのトランザクションアイソレーションレベルを指定されたものに変更することを試みます。

設定する値はjava.sql.Connectionで定義されてる定数を使用します。
※JDBCコネクションが確立した状態でないと設定できません。
newIsolationの値がマイナスの場合はトランザクションアイソレーションレベルの変更を行いません。

パラメータ:
newIsolation - トランザクションアイソレーションレベル
例外:
jp.littlesoft.sql.NJSQLException - 例外発生時
LSSQLException
関連項目:
Connection


Copyright (C) 2006-2012 LittleSoft Corporation. All Rights Reserved.