public abstract class StatementBuilder
extends java.lang.Object
データベースごとのSQL構文差異を吸収するために、 データベース固有のビルダーを追加することができます。
既定で以下のビルダーが追加されています。
H2StatementBuilder (H2)HsqldbStatementBuilder (H2)MssqlStatementBuilder (SQL Server)| コンストラクタと説明 |
|---|
StatementBuilder() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
static void |
add(StatementBuilder builder)
SQLを構築するビルダーを追加します。
|
NamedParameterStatement |
createDeleteStatement(java.sql.DatabaseMetaData md,
java.lang.Class<?> cls,
java.lang.String tableName)
指定されたデータベース・メタデータ、クラス、テーブル名から
名前付きパラメーターをサポートするDELETE文を構築します。
|
NamedParameterStatement |
createInsertStatement(java.sql.DatabaseMetaData md,
java.lang.Class<?> cls,
java.lang.String tableName)
指定されたデータベース・メタデータ、クラス、テーブル名から
名前付きパラメーターをサポートするINSERT文を構築します。
|
NamedParameterStatement |
createMergeStatement(java.sql.DatabaseMetaData md,
java.lang.Class<?> cls,
java.lang.String tableName)
指定されたデータベース・メタデータ、クラス、テーブル名から
名前付きパラメーターをサポートするMERGE文を構築します。
|
NamedParameterStatement |
createSelectStatement(java.sql.DatabaseMetaData md,
java.lang.Class<?> cls,
java.lang.String tableName,
java.lang.Object obj)
指定されたデータベース・メタデータ、クラス、テーブル名、オブジェクトから
名前付きパラメーターをサポートするSELECT文を構築します。
|
NamedParameterStatement |
createUpdateStatement(java.sql.DatabaseMetaData md,
java.lang.Class<?> cls,
java.lang.String tableName)
指定されたデータベース・メタデータ、クラス、テーブル名から
名前付きパラメーターをサポートするUPDATE文を構築します。
|
static StatementBuilder |
getInstance(java.sql.DatabaseMetaData md)
指定したデータベース・メタデータに適合する構文ビルダーを取得します。
|
abstract boolean |
isAcceptable(java.sql.DatabaseMetaData md)
指定されたデータベース・メタデータが、この構文ビルダーに適合するかどうかをチェックします。
|
public static void add(StatementBuilder builder)
builder - SQLを構築するビルダーpublic static StatementBuilder getInstance(java.sql.DatabaseMetaData md)
md - データベース・メタデータpublic abstract boolean isAcceptable(java.sql.DatabaseMetaData md)
throws java.lang.Exception
データベース固有の構文ビルダーはデータベース・メタデータからデータベースの製品名などの情報を参照して、 構文ビルダーがサポートするデータベースかどうかをチェックする必要があります。
md - データベース製品を特定するために参照されるデータベース・メタデータjava.lang.Exception - 構文ビルダー固有の例外がスローされることがあります。(主にSQLException)public NamedParameterStatement createSelectStatement(java.sql.DatabaseMetaData md, java.lang.Class<?> cls, java.lang.String tableName, java.lang.Object obj) throws java.sql.SQLException
tableNameにnull以外の値が指定された場合、これをテーブル名として扱います。 tableNameがnullの場合にはclsをテーブル名として扱います。
objのフィールドはSELECT文のWHERE句を構成する列名として使用されます。 objがnullの場合にはWHERE句を持たない、つまりすべての行を返すSELECT文が構築されます。
このメソッドが返す名前付きパラメーター・ステートメントはパラメーターの値が設定されていない状態です。 objのフィールドはWHERE句に出現する列名を決定することにのみに使用され、列の値には作用しません。
md - データベース・メタデータcls - テーブル名を表すクラスtableName - テーブル名。nullを指定した場合はclsをテーブル名として扱います。obj - WHERE句に指定される列を指定するオブジェクトです。java.sql.SQLException - データベースアクセスエラーが発生した場合public NamedParameterStatement createInsertStatement(java.sql.DatabaseMetaData md, java.lang.Class<?> cls, java.lang.String tableName) throws java.sql.SQLException
tableNameにnull以外の値が指定された場合、これをテーブル名として扱います。 tableNameがnullの場合にはclsをテーブル名として扱います。
clsのフィールドはINSERT文のVALUES句を構成する列名として使用されます。
このメソッドが返す名前付きパラメーター・ステートメントはパラメーターの値が設定されていない状態です。
md - データベース・メタデータcls - テーブル名を表すクラス。フィールドはVALUES句の列名として扱われます。tableName - テーブル名。nullを指定した場合はclsをテーブル名として扱います。java.sql.SQLException - データベースアクセスエラーが発生した場合public NamedParameterStatement createUpdateStatement(java.sql.DatabaseMetaData md, java.lang.Class<?> cls, java.lang.String tableName) throws java.sql.SQLException
tableNameにnull以外の値が指定された場合、これをテーブル名として扱います。 tableNameがnullの場合にはclsをテーブル名として扱います。
clsのフィールドはUPDATE文のSET句またはWHERE句を構成する列名として使用されます。 データベース・メタデータからテーブルのスキーマを参照しテーブルの行を一意に特定するための列を求めます。 行を一意に特定するための列と行バージョン列はWHERE句に指定されます。WHERE句に指定される列が少なくとも1つ以上必要です。 その他の列はSET句に指定されます。(ただし自動インクリメント列は除外されます。)
このメソッドが返す名前付きパラメーター・ステートメントはパラメーターの値が設定されていない状態です。
md - データベース・メタデータcls - テーブル名を表すクラス。フィールドはSET句またはWHERE句の列名として扱われます。tableName - テーブル名。nullを指定した場合はclsをテーブル名として扱います。java.sql.SQLException - データベースアクセスエラーが発生した場合public NamedParameterStatement createDeleteStatement(java.sql.DatabaseMetaData md, java.lang.Class<?> cls, java.lang.String tableName) throws java.sql.SQLException
tableNameにnull以外の値が指定された場合、これをテーブル名として扱います。 tableNameがnullの場合にはclsをテーブル名として扱います。
clsのフィールドはDELETE文のWHERE句を構成する列名として使用されます。 データベース・メタデータからテーブルのスキーマを参照しテーブルの行を一意に特定するための列を求めます。 行を一意に特定するための列と行バージョン列はWHERE句に指定されます。WHERE句に指定される列が少なくとも1つ以上必要です。 その他の列は無視されます。
このメソッドが返す名前付きパラメーター・ステートメントはパラメーターの値が設定されていない状態です。
md - データベース・メタデータcls - テーブル名を表すクラス。フィールドの一部はWHERE句の列名として扱われます。tableName - テーブル名。nullを指定した場合はclsをテーブル名として扱います。java.sql.SQLException - データベースアクセスエラーが発生した場合public NamedParameterStatement createMergeStatement(java.sql.DatabaseMetaData md, java.lang.Class<?> cls, java.lang.String tableName) throws java.sql.SQLException
tableNameにnull以外の値が指定された場合、これをテーブル名として扱います。 tableNameがnullの場合にはclsをテーブル名として扱います。
clsのフィールドはMERGE文を構成する列名として使用されます。
このメソッドが返す名前付きパラメーター・ステートメントはパラメーターの値が設定されていない状態です。
md - データベース・メタデータcls - テーブル名を表すクラス。フィールドの一部は列名として扱われます。tableName - テーブル名。nullを指定した場合はclsをテーブル名として扱います。java.sql.SQLException - データベースアクセスエラーが発生した場合