クラス情報
説明
SQLビルダー.
- DBアクセス時に必要な SQLとパラメーターリストを内包するクラスです。
- SQLの組み立てとパラメーターのセットを同時に行えるメソッドを持ちます。
add*メソッドは自インスタンスを返すのでメソッドチェーンで使えます。
[SQL追加例1]sqlBuilder.addQuery("AND a.user_id IS NOT NULL ");[SQL追加例2]sqlBuilder.addQuery("AND a.user_id = ? ", userId);[SQL追加例3]sqlBuilder.addQuery("AND ? <= a.birth_dt AND a.birth_dt <= ?", birthDtFrom, birthDtTo);[SQL追加例4]sqlBuilder.addQnotB("AND a.user_id = ? ", userId);[SQL追加例5]sqlBuilder.addQnotB("AND a.user_id = ? ", userId).addQnotB("AND a.user_nm LIKE ? ", '%' + name + '%');[SQL実行例]SqlResultSet rSet = SqlUtil.select(getDbConn(), sqlBuilder);
メソッド一覧
addSqlBuilder
public void addSqlBuilder(SqlBuilder sb)
SQLビルダー追加.
- SQLとパラメーターを引き継ぐ。
パラメータ
| 名前 | 型 | 説明 |
|---|---|---|
sb |
SqlBuilder |
SQLビルダー |
addQuery
public SqlBuilder addQuery(String sql, Object... params)
SQL&パラメーター追加.
- パラメーター引数は省略可能で単一または複数で渡すことも可能です。
[例1]sqlBuilder.addQuery("AND a.user_id IS NOT NULL ");[例2]sqlBuilder.addQuery("AND a.user_id = ? ", userId);[例3]sqlBuilder.addQuery("AND ? <= a.birth_dt AND a.birth_dt <= ?", birthDtFrom, birthDtTo);
パラメータ
| 名前 | 型 | 説明 |
|---|---|---|
sql |
String |
SQL |
params |
Object... |
パラメーター(複数可能)(省略可能) |
戻り値
SqlBuilder - 自インスタンス
addParams
public SqlBuilder addParams(Object... params)
パラメーター追加.
- 複数渡すことも可能です。
[例1]sqlBuilder.addParams(userId);[例2]sqlBuilder.addParams(birthDtFrom, birthDtTo);
パラメータ
| 名前 | 型 | 説明 |
|---|---|---|
params |
Object... |
パラメーター(複数可能) |
戻り値
SqlBuilder - 自インスタンス
addListInBind
public SqlBuilder addListInBind(List<Object> params)
カンマ区切りSQLバインド文字追加.
- リスト内の要素数だけカンマ区切りでSQLバインド文字 "?" をSQLに追加します。
- リスト内の要素数が 3 の場合は "?,?,?" がSQLに追加されます。
- リスト内の値はSQLバインド文字パラメーターとして追加されます。
- SQLバインド文字数が可変の IN句で使用する想定です。
[例]sqlBuilder.addQuery("AND type_cs IN (").addListInBind(list).addQuery(")");
パラメータ
| 名前 | 型 | 説明 |
|---|---|---|
params |
List<Object> |
パラメーターリスト |
戻り値
SqlBuilder - 自インスタンス
addQueryIfNotBlankParameter
public SqlBuilder addQueryIfNotBlankParameter(String sql, Object param)
パラメーターが
null以外かつブランク以外 の場合のみ SQLとパラメーターを追加.- パラメーターが
null・ブランク以外の場合のみ SQLとパラメーターを追加します。 - それ以外の仕様は
#addQuery(String, Object...)と同じです。 - 基本的には本メソッドのショートカット
#addQnotB(String, Object)を使用してください。
下記例ではuserIdがnull・ブランク以外の場合のみ SQLが追加されます。 [例]sqlBuilder.addQueryIfNotBlankParameter("AND user_id = ? ", userId);
パラメータ
| 名前 | 型 | 説明 |
|---|---|---|
sql |
String |
SQL |
param |
Object |
パラメーター(単一のみ) |
戻り値
SqlBuilder - 自インスタンス
addQnotB
public SqlBuilder addQnotB(String sql, Object param)
パラメーターが
null以外かつブランク以外 の場合のみ SQLとパラメーターを追加.#addQueryIfNotBlankParameter(String, Object)のショートカット。- パラメーターが
null・ブランク以外の場合のみ SQLとパラメーターを追加します。 - それ以外の仕様は
#addQuery(String, Object...)と同じです。
下記例ではuserIdがnull・ブランク以外の場合のみ SQLが追加されます。 [例]sqlBuilder.addQnotB("AND user_id = ? ", userId);
パラメータ
| 名前 | 型 | 説明 |
|---|---|---|
sql |
String |
SQL |
param |
Object |
パラメーター(単一のみ) |
戻り値
SqlBuilder - 自インスタンス
delLastChar
public SqlBuilder delLastChar()
最終SQL文字列削除.
- SQL文字列の最終文字(1文字)を削除します。
[例]
for (final String key : params.keySet()) {
sb.addQuery(key).addQuery("=?", params.get(key)).addQuery(",");
}
// 最後のカンマ削除
sb.deleteLastChar();
戻り値
SqlBuilder - 自インスタンス
delLastChar
public SqlBuilder delLastChar(int deleteCharCount)
最終SQL文字列削除.
- SQL文字列の最後から指定文字数を削除します。
[例]
for (final String key : params.keySet()) {
sb.addQuery(key).addQuery("=?", params.get(key)).addQuery(" AND ");
}
// 最後の AND 削除
sb.delLastChar(4);
パラメータ
| 名前 | 型 | 説明 |
|---|---|---|
deleteCharCount |
int |
削除文字数 |
戻り値
SqlBuilder - 自インスタンス