## nga.sql
インタフェース Selecter<R>

    public interface Selecter<R>

Select 文用 SQL オブジェクト。

関連項目:
  `SQL.createSelecter(Connection, Class, String)`, `SQL.createSelecter(Connection, Class, String, Object[])`

メソッドの概要
`Selecter<R>` `add(String s)` 現在の SQL 文の末尾に文字列を追加する。
`Selecter<R>` `and(String s)` 現在の SQL 文の末尾に「"AND " + 指定した文字列」を追加する。
`void` `close(ResultSet rs)` `getResultSet()` メソッドで取得した ResultSet および Statement をクローズする。
`int` `count()` 指定した SELECT 文を「SELECT COUNT(*) 〜」に変換して実行し， その件数を取得する。
`List<R>` `find()` SELECT 文を実行し，指定されたクラスのインスタンスをリストに格納して返す。
`List<R>` `find(List<R> list)` SELECT 文を実行し，指定されたリストに格納して返す。
`R` `find(R object)` SELECT 文を実行し，指定されたオブジェクトに格納して返す。
`int` `getMaxRows()` 検索結果の最大行数を取得する。
`int` `getQueryTimeout()` クエリーのタイムアウト時間（秒）を取得する。
`ResultSet` `getResultSet()` SELECT 文を実行して得た ResultSet をそのまま取得する。
`boolean` `isDebugMode()` 現在デバッグモードかどうかを調べる。
`boolean` `isExceeded()` `setMaxRows(int)` で設定した行数を超えた行が検索された場合は ture を返す。
`Selecter<R>` `or(String s)` 現在の SQL 文の末尾に「"OR " + 指定した文字列」を追加する。
`void` `setDebugMode(boolean debug)` デバッグ状態を設定する。
`void` `setMaxRows(int maxRows)` 検索結果の最大行数をセットする。
`void` `setQueryTimeout(int queryTimeout)` クエリーのタイムアウト時間（秒）をセットする。

メソッドの詳細

### getQueryTimeout

    int getQueryTimeout()

  クエリーのタイムアウト時間（秒）を取得する。

  戻り値:
    クエリーのタイムアウト時間（秒）。

### setQueryTimeout

    void setQueryTimeout(int queryTimeout)

  クエリーのタイムアウト時間（秒）をセットする。

  パラメータ:
    `queryTimeout` - クエリーのタイムアウト時間（秒）。

### add

    Selecter<R> add(String s)

  現在の SQL 文の末尾に文字列を追加する。

  パラメータ:
    `s` - SQL 文の末尾に追加する文字列。
  戻り値:
    現在の SQL オブジェクト。

### and

    Selecter<R> and(String s)

  現在の SQL 文の末尾に「"AND " + 指定した文字列」を追加する。
  なお，現在の SQL 文中にまだ "WHERE" 文字列が存在しない場合は，「"WHERE " + 指定した文字列」を追加する。 また，現在の SQL 文の末尾の文字が '(' だった場合は，"AND" は追加せず，指定された文字列のみを追加する。

  パラメータ:
    `s` - SQL 文の末尾に追加する文字列。
  戻り値:
    現在の SQL オブジェクト。

### or

    Selecter<R> or(String s)

  現在の SQL 文の末尾に「"OR " + 指定した文字列」を追加する。
  なお，現在の SQL 文中にまだ "WHERE" 文字列が存在しない場合は，「"WHERE " + 指定した文字列」を追加する。 また，現在の SQL 文の末尾の文字が '(' だった場合は，"OR" は追加せず，指定された文字列のみを追加する。

  パラメータ:
    `s` - SQL 文の末尾に追加する文字列。
  戻り値:
    現在の SQL オブジェクト。

### find

    List<R> find()
                 throws SQLException

  SELECT 文を実行し，指定されたクラスのインスタンスをリストに格納して返す。

  戻り値:
    SQL実行結果を格納したリスト。検索結果が 0 件の場合は，要素数 0 のリストとなる。
  例外:
    `SQLException`

### find

    List<R> find(List<R> list)
                 throws SQLException

  SELECT 文を実行し，指定されたリストに格納して返す。

  パラメータ:
    `list` - 検索結果の格納先リスト。
  戻り値:
    引数 list と同一のインスタンス。
  例外:
    `SQLException`

### find

    R find(R object)
           throws SQLException

  SELECT 文を実行し，指定されたオブジェクトに格納して返す。 検索結果が 2 件以上あった場合は，1 件目のみ指定されたオブジェクトに格納する。 この際，`isExceeded()` を呼び出すと，true を返す。

  戻り値:
    引数 object と同一のインスタンス。但し，検索結果が 0 件の場合は，null。
  例外:
    `SQLException`

### count

    int count()
              throws SQLException

  指定した SELECT 文を「SELECT COUNT(*) 〜」に変換して実行し， その件数を取得する。

  戻り値:
    実行結果件数。
  例外:
    `SQLException`

### getResultSet

    ResultSet getResultSet()
                           throws SQLException

  SELECT 文を実行して得た ResultSet をそのまま取得する。 このメソッドで取得した ResultSet は`close(ResultSet)` メソッドでクローズする必要がある。

  戻り値:
    ResultSet。
  例外:
    `SQLException`

### close

    void close(ResultSet rs)

  `getResultSet()` メソッドで取得した ResultSet および Statement をクローズする。

  パラメータ:
    `rs` - クローズする ResultSet。

### isExceeded

    boolean isExceeded()

  `setMaxRows(int)` で設定した行数を超えた行が検索された場合は ture を返す。 `find(java.lang.Object)` が 2 件以上の結果を返した場合は true を返す。

  戻り値:
    `setMaxRows(int)` で設定した行数を超えた行が検索された場合は ture。

### getMaxRows

    int getMaxRows()

  検索結果の最大行数を取得する。

  戻り値:
    検索結果の最大行数。
  関連項目:
    `isExceeded()`

### setMaxRows

    void setMaxRows(int maxRows)

  検索結果の最大行数をセットする。

  パラメータ:
    `maxRows` - 検索結果の最大行数。
  関連項目:
    `isExceeded()`

### setDebugMode

    void setDebugMode(boolean debug)

  デバッグ状態を設定する。

  パラメータ:
    `debug` - デバッグモードの場合は true を指定する。

### isDebugMode

    boolean isDebugMode()

  現在デバッグモードかどうかを調べる。

  戻り値:
    デバッグモードならば true。デバッグモードでなければ false。