## wisdomx.ui.builder
クラス StatementBuilder

    java.lang.Object
      wisdomx.ui.builder.StatementBuilder

public class StatementBuilder
extends java.lang.Object

検索に使用する単純なPreparedStatementを作成するクラス
このクラスはSQL WHERE 以降の条件を組み立てます。
インスタンス生成時に、WHEREを含まない完全なSQL文字列を渡し、パラメータを設定します。設定したパラメータの値が nullの場合、設定したパラメータは無視されます。
update 2004/5/24
WITH UR対応　省略時にSQL文字列の最後に"WITH UR"が追加されます。追加したくない場合、コンストラクタで変更してください。

バージョン:
  1
作成者:
  Takao Kouda

コンストラクタの概要
`StatementBuilder(java.lang.String selectFieldSQL, java.sql.Connection connection)` コンストラクタ
`StatementBuilder(java.lang.String selectFieldSQL, java.sql.Connection connection, boolean isUr)` コンストラクタ 生成するSQL文字列に含まれる"WITH UR"を追加するか否か指定できるコンストラクタ

メソッドの概要
`void` `and(java.lang.String fieldValue, java.lang.String expression)` AND条件を追加します。
`java.sql.PreparedStatement` `buildStatement()` PreparedStatementを作成します。
`void` `or(java.lang.String fieldValue, java.lang.String expression)` OR条件を追加します。
`void` `setGroupBy(java.lang.String groupBy)` SQL GROUP BY文を設定します。
`void` `setOrderBy(java.lang.String orderBy)` SQL ORDER BY文を設定します。

クラス java.lang.Object から継承したメソッド
`equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

コンストラクタの詳細

### StatementBuilder

    public StatementBuilder(java.lang.String selectFieldSQL,
                            java.sql.Connection connection)

  コンストラクタ

パラメータ:
  `selectFieldSQL` - SQL WHERE句までのSELECT文（WHEREも含まない）
  `connection` - PreparedStatementを作成するDB接続

### StatementBuilder

    public StatementBuilder(java.lang.String selectFieldSQL,
                            java.sql.Connection connection,
                            boolean isUr)

  コンストラクタ
  生成するSQL文字列に含まれる"WITH UR"を追加するか否か指定できるコンストラクタ

パラメータ:
  `selectFieldSQL` - SQL WHERE句までのSELECT文（WHEREも含まない）
  `connection` - PreparedStatementを作成するDB接続
  `isUr` - SQL文字列の最後にWITH URを追加するか否か。trueで追加し、falseで追加しない。
導入されたバージョン:
  2004/5/24

メソッドの詳細

### buildStatement

    public java.sql.PreparedStatement buildStatement()
                                              throws java.lang.Exception

  PreparedStatementを作成します。
  作成されるオブジェクトは
  Connection#prepareStatement(sql, ResultSet.TYPE_SCROLL_INSENSITIVE , ResultSet.CONCUR_READ_ONLY);
  を使用し作成されるため、PreparedStatement実行で取得されるResultSetはスクロール可能です。

  戻り値:
    作成されたPreparedStatement
  例外:
    `java.lang.Exception`

### and

    public void and(java.lang.String fieldValue,
                    java.lang.String expression)

  AND条件を追加します。

       StatementBuilder buider = new StatementBuilder(
       	"SELECT USERID,DEPTNAME FROM USER LEFT OUTER JOIN DEPARTMENT USING (USER.DEPTID = DEPARTMENT.DEPTID)"
       );
       buider.and(parameterInputForm.getString("userid",null) , "USER.USERID = ?");

  この場合、parameterInputFormから取得できるuseridの値がnullの場合、SQL文にWHERE条件は追加されない PreparedStatementが作成されます。useridの値がnull以外の場合、SQL文がWHERE USER.USERID = ? の PreparedStatementが作成され、パラメータも設定された状態になります。
  条件の追加順序とおりにWHERE以降の条件が追加されますが、andメソッドの場合、この条件が追加される以前に 別の条件が追加されていた場合、このメソッドによる追加はAND条件として追加されます。

  パラメータ:
    `fieldValue` -
    `expression` -

### or

    public void or(java.lang.String fieldValue,
                   java.lang.String expression)

  OR条件を追加します。
  基本動作はand(String, String) }と同じです。orメソッドの場合、この条件が追加される以前に 別の条件が追加されていた場合、このメソッドによる追加はOR条件として追加されます。

  パラメータ:
    `fieldValue` -
    `expression` -

### setOrderBy

    public void setOrderBy(java.lang.String orderBy)

  SQL ORDER BY文を設定します。
  このメソッドは`buildStatement()`の中で作成されるSQL文の最後にORDER BY 文を追加するものです。
  引数のorderByにSQL文 ORDER BY を含める必要はありません。

### setGroupBy

    public void setGroupBy(java.lang.String groupBy)

  SQL GROUP BY文を設定します。
  このメソッドは`buildStatement()`の中で作成されるSQL文の最後にGROUP BY 文を追加するものです。
  引数のgroupByにSQL文 GROUP BY を含める必要はありません。