jp.littlesoft.sql
クラス SQLDataProviderImpl

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

public class SQLDataProviderImpl
extends SQLAdaptor
implements ISQLDataProvider

SQLデータベースからTableオブジェクトに読み込むクラス。

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

入れ子のクラスの概要
 
クラス jp.littlesoft.sql.SQLAdaptor から継承された入れ子のクラス/インタフェース
SQLAdaptor.SQLServerType, SQLAdaptor.TransactionIsolationType
 
フィールドの概要
static String COUNT_COLUMN_NAME
          全件数取得時のカラム名を表す定数です。
protected  ResultSet jdbcCountResultSet
          ResultSetオブジェクトです。
protected  Statement jdbcCountStatement
          SQL文をデータベースに送るためのjdbcStatementオブジェクトです。
protected  ResultSet jdbcResultSet
          ResultSetオブジェクトです。
protected  Statement jdbcStatement
          SQL文をデータベースに送るためのjdbcStatementオブジェクトです。
protected  String[] resultSetColumnNames
          ResultSetオブジェクトのカラム名です。
static String UNKNOWN_COLUMN_NAME
          JDBC ResultSetMetaDataからカラム名が取得できなかった場合のカラム名を表す定数です。
 
クラス jp.littlesoft.sql.SQLAdaptor から継承されたフィールド
getPrimaryKeyAvailable, jdbcConnection, queryTimeout
 
コンストラクタの概要
SQLDataProviderImpl()
           
 
メソッドの概要
 void cancelQuery()
          実行中のJDBCStatementを中断します。
 boolean checkMoreRow(Table table, boolean toLast)
          追加行が存在するかどうかを調べます。
 void free()
          内部リソースを解放します。
protected  void freeStatement()
          Statementを解放します。
 String getCountSQL(String sql)
          全件数取得の際のSQL問い合わせ文を取得します。
 int getFetchSize()
          Tableに一度にロードする行数を取得します。
 String getJDBCSQL()
          パラメータのプレースホルダがJDBC形式に変換された後のSQL文を取得します。
 String getJDBCSQL(String sql)
           
 int getMaxRows()
          Tableに読み込む最大行数を取得します。
 String getPageSQL()
          ページ取得の際のSQL問い合わせ文を取得します。
 Params<?> getParams()
          設定されているパラメータを取得します。
 String getSQL()
          このTableの基となるSQL問い合わせ文を取得します。
 void loadData(Table table)
          データのロードを行います。
 void setFetchSize(int fetchSize)
          Tableに一度にロードする行数を設定します。
 void setMaxRows(int newMaxRows)
          Tableに読み込む最大行数を設定します。
 void setPageSQL(String newPageSQL, int offset, int limit)
          ページ取得の際のSQL問い合わせ文を設定します。
 void setPageSQL(String newPageSQL, int offset, int limit, boolean parseParam)
          ページ取得の際のSQL問い合わせ文を設定します。
 void setParams(Params<?> params)
           
 void setSQL(String newSQL)
          このTableの基となるSQL問い合わせ文を設定します。
 void setSQL(String newSQL, boolean parseParam)
          このSQLTableの元となるSQL問い合わせ文を設定します。
 void setSQLText(String newSQL)
          このTableの基となるSQL問い合わせ文を設定します。
<T extends Serializable>
void
setupColumn(Table<?> table)
          カラムのセットアップを行います。
 
クラス jp.littlesoft.sql.SQLAdaptor から継承されたメソッド
bindParamValues, bindParamValues, bindResultValues, checkConnection, close, connect, connect, createStatement, finalize, getClientId, getClientId, getColumnValidator, getConnection, getConnectProperty, getDBPassword, getDBURL, getDBUserName, getJDBCDriverClassName, getPrimaryKeyColumns, getQueryTimeout, getSQLServerType, isAutoCommit, isConnecting, isConnectionOwner, isSearchMetaDataByLowerCase, isSearchMetaDataByUpperCase, isSearchMetaDataWithinSchema, prepareCall, preparedStatement, setAutoCommit, setClientId, setColumnValidator, setConnection, setConnectProperty, setDBPassword, setDBURL, setDBUserName, setJDBCDriverClassName, setQueryTimeout, setSearchMetaDataByLowerCase, setSearchMetaDataByUpperCase, setSearchMetaDataWithinSchema, setSQLServerType, setTransactionIsolation
 
クラス java.lang.Object から継承されたメソッド
clone, equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 
インタフェース jp.littlesoft.sql.ISQLDataProvider から継承されたメソッド
close, getConnection, setConnection
 

フィールドの詳細

jdbcStatement

protected transient Statement jdbcStatement
SQL文をデータベースに送るためのjdbcStatementオブジェクトです。


jdbcCountStatement

protected transient Statement jdbcCountStatement
SQL文をデータベースに送るためのjdbcStatementオブジェクトです。

全件数取得時に使用します。


jdbcResultSet

protected transient ResultSet jdbcResultSet
ResultSetオブジェクトです。


jdbcCountResultSet

protected transient ResultSet jdbcCountResultSet
ResultSetオブジェクトです。

全件数取得時に使用します。


resultSetColumnNames

protected String[] resultSetColumnNames
ResultSetオブジェクトのカラム名です。


UNKNOWN_COLUMN_NAME

public static final String UNKNOWN_COLUMN_NAME
JDBC ResultSetMetaDataからカラム名が取得できなかった場合のカラム名を表す定数です。

関連項目:
定数フィールド値

COUNT_COLUMN_NAME

public static final String COUNT_COLUMN_NAME
全件数取得時のカラム名を表す定数です。

関連項目:
定数フィールド値
コンストラクタの詳細

SQLDataProviderImpl

public SQLDataProviderImpl()
メソッドの詳細

getSQL

public String getSQL()
このTableの基となるSQL問い合わせ文を取得します。

定義:
インタフェース ISQLDataProvider 内の getSQL
戻り値:
JDBC形式返還前のSQL文

setSQL

public void setSQL(String newSQL)
            throws DataException
このTableの基となるSQL問い合わせ文を設定します。

テーブルオブジェクトに読み込むデータを取得するSELECT文を設定し、 パラメータの解析を行います。

定義:
インタフェース ISQLDataProvider 内の setSQL
パラメータ:
newSQL - SQL文
例外:
DataException - 例外発生時

setSQL

public void setSQL(String newSQL,
                   boolean parseParam)
            throws DataException
このSQLTableの元となるSQL問い合わせ文を設定します。

テーブルオブジェクトに読み込むデータを取得するSELECT文を設定し、 引数「parseParam」でTrueが指定された場合、パラメータの解析を行います。

パラメータ:
newSQL - SQL文
parseParam - パラメータ解析を行うかどうか
例外:
DataException - 例外発生時

setSQLText

public void setSQLText(String newSQL)
このTableの基となるSQL問い合わせ文を設定します。

このTableの行列データを構築する基となるSELECT文を設定します。
SQLを設定するだけです。列データを再構築するなどの他の操作は全く行いません。

※通常はこのメソッドは使用せずに、setSQL(Stirng newSQL)メソッドを使用してください。

関連項目:
setSQL(String newSQL)

getPageSQL

public String getPageSQL()
ページ取得の際のSQL問い合わせ文を取得します。

定義:
インタフェース ISQLDataProvider 内の getPageSQL
戻り値:
JDBC形式返還前のページ取得SQL文

setPageSQL

public void setPageSQL(String newPageSQL,
                       int offset,
                       int limit)
                throws DataException
ページ取得の際のSQL問い合わせ文を設定します。

テーブルオブジェクトに読み込むデータを取得するページ取得SELECT文を設定し、 パラメータの解析を行います。

定義:
インタフェース ISQLDataProvider 内の setPageSQL
パラメータ:
newPageSQL - ページ取得SQL文
offset - ページオフセット
limit - ページリミット
例外:
DataException - 例外発生時

setPageSQL

public void setPageSQL(String newPageSQL,
                       int offset,
                       int limit,
                       boolean parseParam)
                throws DataException
ページ取得の際のSQL問い合わせ文を設定します。

テーブルオブジェクトに読み込むデータを取得するページ取得SELECT文を設定し、 引数「parseParam」でTrueが指定された場合、パラメータの解析を行います。

パラメータ:
newPageSQL - ページ取得SQL文
offset - ページオフセット
limit - ページリミット
parseParam - パラメータ解析を行うかどうか
例外:
DataException - 例外発生時

getCountSQL

public String getCountSQL(String sql)
全件数取得の際のSQL問い合わせ文を取得します。

戻り値:
全件数取得SQL文

getJDBCSQL

public String getJDBCSQL()
パラメータのプレースホルダがJDBC形式に変換された後のSQL文を取得します。

※注意 このとき、SQL中の /*$ xxxx $*/ というコメント部分もTable#getParams().getValueAsString("xxxx")の値に置換されます。
例:table.setSQL("SELECT AAA FROM TBL_X WHERE BBB = :BBB /*$ CCC_IN $*/");
table.getParams().getValueAsString("CCC_IN") の値が "AND CCC IN ('X', 'Y')"
の場合
"SELECT AAA FROM TBL_X WHERE BBB = ? AND CCC IN ('X', 'Y')"
が結果として返されます。

戻り値:
JDBC形式変換後のSQL文

getJDBCSQL

public String getJDBCSQL(String sql)

setMaxRows

public void setMaxRows(int newMaxRows)
Tableに読み込む最大行数を設定します。

0を設定すると無制限になります。(デフォルト)

このプロパティに対する実際の挙動は派生クラス側の実装に依存します。

DBActionTableおよびSQLTableの場合、MaxRowsプロパティを設定すると、 データベースから取得する行数を制限することができます。

※注 java.sql.StatementクラスのsetMaxRows(int)メソッドを利用しています。
   従って、java.sql.Statement#setMaxRows(int)メソッドが実装されていないJDBCドライバーを 利用した場合には、全件が取得されます。
また、newMaxRowsに0より小さい値を設定することはできません。

定義:
インタフェース ISQLDataProvider 内の setMaxRows
パラメータ:
newMaxRows - 最大行数(0以上の整数,0は無制限)

getMaxRows

public int getMaxRows()
Tableに読み込む最大行数を取得します。

戻り値:
最大行数

setFetchSize

public void setFetchSize(int fetchSize)
Tableに一度にロードする行数を設定します。

0を設定すると無制限になります。(デフォルト)

このプロパティに対する実際の挙動は派生クラス側の実装に依存します。

パラメータ:
fetchSize - ロード行数

getFetchSize

public int getFetchSize()
Tableに一度にロードする行数を取得します。

戻り値:
ロード行数

cancelQuery

public void cancelQuery()
                 throws DataException
実行中のJDBCStatementを中断します。

JDBCStatementの実行をただちに中断します。
使用するJDBCドライバーがStatement.cancel()メソッドを実装していない場合、正常に動作しません。

例外:
DataException

setupColumn

public <T extends Serializable> void setupColumn(Table<?> table)
                 throws DataException
カラムのセットアップを行います。

SQLを実行し、JDBC ResultSetMetaDataよりカラムのセットアップを行います。

ResultSetMetaDataから取得したカラム名が重複していた場合は、 カラム名にシーケンスを付加することにより重複しないようにしています。
例えば、"ABC"というカラムが2つあった場合は、"ABC"と"ABC1"になります。
又、ResultSetMetaDataからカラム名が取得できなかった場合は、 "UNKNOWN_COLUMN"というカラム名が設定されます。
これは、このクラスの定数として宣言されています。
(public static final String UNKNOWN_COLUMN_NAME = "UNKNOWN_COLUMN";)

定義:
インタフェース DataProvider 内の setupColumn
パラメータ:
table - この引数は使用していません。
例外:
jp.littlesoft..data.DataException - 例外発生時
DataException - 例外発生時
関連項目:
UNKNOWN_COLUMN_NAME

loadData

public void loadData(Table table)
              throws DataException
データのロードを行います。

定義:
インタフェース DataProvider 内の loadData
パラメータ:
table - テーブルオブジェクト
例外:
jp.littlesoft..data.DataException - 例外発生時
DataException - 例外発生時

checkMoreRow

public boolean checkMoreRow(Table table,
                            boolean toLast)
                     throws DataException
追加行が存在するかどうかを調べます。

定義:
インタフェース DataProvider 内の checkMoreRow
パラメータ:
toLast - True:最終行まで調べる、False:最終行まで調べない
table - テーブルオブジェクト
戻り値:
True:存在する、False:存在しない
例外:
jp.littlesoft..data.DataException - 例外発生時
DataException - 例外発生時

free

public void free()
          throws DataException
内部リソースを解放します。

定義:
インタフェース DataProvider 内の free
例外:
jp.littlesoft..data.DataException - 例外発生時
DataException - 例外発生時

freeStatement

protected void freeStatement()
Statementを解放します。


getParams

public Params<?> getParams()
設定されているパラメータを取得します。

定義:
インタフェース DataProvider 内の getParams
戻り値:
設定されているパラメータ

setParams

public void setParams(Params<?> params)
定義:
インタフェース DataProvider 内の setParams


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