|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
java.lang.Object org.seasar.doma.jdbc.builder.SelectBuilder
public class SelectBuilder
SELECT文を組み立て実行するクラスです。
このクラスはスレッドセーフではありません。
SelectBuilder builder = SelectBuilder.newInstance(config); builder.sql("select"); builder.sql("id").sql(","); builder.sql("name").sql(","); builder.sql("salary"); builder.sql("from Emp"); builder.sql("where"); builder.sql("name like ").param(String.class, "S%"); builder.sql("and"); builder.sql("age > ").param(int.class, 20); Emp emp = builder.getSingleResult(Emp.class);
select id, name, salary from Emp where name like 'S%' and age > 20
メソッドの概要 | ||
---|---|---|
void |
callerClassName(String className)
呼び出し元のクラス名です。 |
|
void |
callerMethodName(String methodName)
呼び出し元のメソッド名です。 |
|
void |
ensureResult(boolean ensureResult)
結果が少なくとも1件以上存在することを保証します。 |
|
void |
ensureResultMapping(boolean ensureResultMapping)
結果のエンティティのすべてのプロパティが結果セットのカラムにマッピングされることを保証します。 |
|
void |
fetchSize(int fetchSize)
フェッチサイズを設定します。 |
|
|
getResultList(Class<R> resultClass)
複数件を返します。 |
|
List<Map<String,Object>> |
getResultList(MapKeyNamingType mapKeyNamingType)
List<Map<String, Object>> として 複数件を返します。 |
|
|
getSingleResult(Class<R> resultClass)
1件を返します。 |
|
Map<String,Object> |
getSingleResult(MapKeyNamingType mapKeyNamingType)
Map<String, Object> として1件を返します。 |
|
Sql<?> |
getSql()
組み立てられたSQLを返します。 |
|
|
iterate(Class<T> targetClass,
IterationCallback<R,T> iterationCallback)
処理対象のオブジェクト群を順に1件ずつ処理します。 |
|
|
iterate(MapKeyNamingType mapKeyNamingType,
IterationCallback<R,Map<String,Object>> iterationCallback)
処理対象のオブジェクト群を Map<String, Object> として順に1件ずつ処理します。 |
|
void |
maxRows(int maxRows)
最大行数の制限値を設定します。 |
|
static SelectBuilder |
newInstance(Config config)
ファクトリメソッドです。 |
|
void |
options(SelectOptions options)
検索系SQLを実行する際のオプションを設定します。 |
|
|
param(Class<P> paramClass,
P param)
パラメータを追加します。 |
|
void |
queryTimeout(int queryTimeout)
クエリタイムアウト(秒)を設定します。 |
|
SelectBuilder |
removeLast()
最後に追加したSQLもしくはパラメータを削除します。 |
|
SelectBuilder |
sql(String sql)
SQLの断片を追加します。 |
クラス java.lang.Object から継承されたメソッド |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
メソッドの詳細 |
---|
public static SelectBuilder newInstance(Config config)
config
- 設定
DomaNullPointerException
- 引数がnull
の場合public SelectBuilder sql(String sql)
sql
- SQLの断片
DomaNullPointerException
- 引数が null
の場合public SelectBuilder removeLast()
public <P> SelectBuilder param(Class<P> paramClass, P param)
パラメータの型には、基本型とドメインクラスを指定できます。
P
- パラメータの型paramClass
- パラメータのクラスparam
- パラメータ
DomaNullPointerException
- paramClass
が null
の場合public <R> R getSingleResult(Class<R> resultClass)
戻り値の型に指定できるのは、エンティティクラス、ドメインクラス、基本型のいずれかです。
検索結果が存在しない場合は null
を返しますが、
ensureResult(boolean)
に true
を設定することで、
null
を返す代わりにNoResultException
をスローできます。
R
- 戻り値の型resultClass
- 戻り値のクラス
DomaNullPointerException
- 引数がnull
の場合
DomaIllegalArgumentException
- 戻り値のクラスがエンティティクラス、ドメインクラス、基本型のいずれでもない場合
MappedPropertyNotFoundException
- 戻り値の型がエンティティクラスで、結果セットに含まれるカラムにマッピングされたプロパティが見つからなかった場合
NonSingleColumnException
- 戻り値の型が基本型やドメインクラスで、かつ結果セットに複数のカラムが含まれている場合
NoResultException
- ensureResult(boolean)
に true
を設定しており結果が存在しない場合
ResultMappingException
- ensureResultMapping(boolean)
に
true
を設定しており戻り値の型がエンティティクラスやエンティティクラスを要素とする
List
の場合で、マッピングされないエンティティプロパティが存在する場合
NonUniqueResultException
- 結果が2件以上返された場合
JdbcException
- 上記以外でJDBCに関する例外が発生した場合public Map<String,Object> getSingleResult(MapKeyNamingType mapKeyNamingType)
Map<String, Object>
として1件を返します。
検索結果が存在しない場合は null
を返しますが、
ensureResult(boolean)
に true
を設定することで、
null
を返す代わりに NoResultException
をスローできます。
mapKeyNamingType
- マップのキーのネーミング規約
DomaNullPointerException
- 引数がnull
の場合
NoResultException
- ensureResult(boolean)
に true
を設定しており結果が存在しない場合
NonUniqueResultException
- 結果が2件以上返された場合
JdbcException
- 上記以外でJDBCに関する例外が発生した場合public <R> List<R> getResultList(Class<R> resultClass)
戻り値の型に指定できるのは、エンティティクラス、ドメインクラス、基本型のいずれかです。
検索結果が存在しない場合は空のリストを返します。
R
- 戻り値のリストの要素の型resultClass
- 戻り値のリストの要素のクラス
DomaNullPointerException
- 引数が null
の場合
DomaIllegalArgumentException
- 戻り値のリストの要素のクラスがエンティティクラス、ドメインクラス、基本型のいずれでもない場合
MappedPropertyNotFoundException
- 戻り値のリストの要素の型がエンティティクラスで、
結果セットに含まれるカラムにマッピングされたプロパティが見つからなかった場合
NonSingleColumnException
- 戻り値のリストの要素の型が基本型やドメインクラスで、かつ結果セットに複数のカラムが含まれている場合
JdbcException
- 上記以外でJDBCに関する例外が発生した場合public List<Map<String,Object>> getResultList(MapKeyNamingType mapKeyNamingType)
List<Map<String, Object>>
として 複数件を返します。
検索結果が存在しない場合は空のリストを返します。
mapKeyNamingType
- マップのキーのネーミング規約
DomaNullPointerException
- 引数が null
の場合
JdbcException
- 上記以外でJDBCに関する例外が発生した場合public <R,T> R iterate(Class<T> targetClass, IterationCallback<R,T> iterationCallback)
処理対象の型に指定できるのは、エンティティクラス、ドメインクラス、基本型のいずれかです。
R
- 戻り値の型T
- 処理対象の型。すなわち、基本型、ドメインクラス、もしくはエンティティクラスtargetClass
- 処理対象のクラスiterationCallback
- コールバック
DomaNullPointerException
- 引数のいずれかがnull
の場合
DomaIllegalArgumentException
- 処理対象のクラスがエンティティクラス、ドメインクラス、基本型のいずれでもない場合
MappedPropertyNotFoundException
- 処理対象の型がエンティティクラスで、結果セットに含まれるカラムにマッピングされたプロパティが見つからなかった場合
NonSingleColumnException
- 処理対象の型が基本型やドメインクラスで、かつ結果セットに複数のカラムが含まれている場合
JdbcException
- 上記以外でJDBCに関する例外が発生した場合public <R> R iterate(MapKeyNamingType mapKeyNamingType, IterationCallback<R,Map<String,Object>> iterationCallback)
Map<String, Object>
として順に1件ずつ処理します。
R
- 戻り値の型mapKeyNamingType
- マップのキーのネーミング規約iterationCallback
- コールバック
DomaNullPointerException
- 引数のいずれかがnull
の場合
JdbcException
- 上記以外でJDBCに関する例外が発生した場合public void ensureResult(boolean ensureResult)
ensureResult
- 結果が少なくとも1件以上存在することを保証する場合 true
public void ensureResultMapping(boolean ensureResultMapping)
ensureResultMapping
- 結果のエンティティのすべてのプロパティが結果セットのカラムにマッピングされることを保証する場合 true
public void fetchSize(int fetchSize)
指定しない場合、 Config.getFetchSize()
が使用されます。
fetchSize
- フェッチサイズStatement.setFetchSize(int)
public void maxRows(int maxRows)
指定しない場合、 Config.getMaxRows()
が使用されます。
maxRows
- 最大行数の制限値Statement.setMaxRows(int)
public void queryTimeout(int queryTimeout)
指定しない場合、 Config.getQueryTimeout()
が使用されます。
queryTimeout
- クエリタイムアウト(秒)Statement.setQueryTimeout(int)
public void callerClassName(String className)
指定しない場合このクラスの名前が使用されます。
className
- 呼び出し元のクラス名
DomaNullPointerException
- 引数が null
の場合public void callerMethodName(String methodName)
指定しない場合このSQLを生成するメソッド(getSingleResult(Class)
,
getResultList(Class)
,iterate(Class, IterationCallback)
,
getSql()
)の名前が使用されます。
methodName
- 呼び出し元のメソッド名
DomaNullPointerException
- 引数が null
の場合public void options(SelectOptions options)
options
- 検索系SQLを実行する際のオプション
DomaNullPointerException
- 引数が null
の場合public Sql<?> getSql()
|
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | |||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |