Package nablarch.core.db.dialect
Class SqlServerDialect
java.lang.Object
nablarch.core.db.dialect.DefaultDialect
nablarch.core.db.dialect.SqlServerDialect
- All Implemented Interfaces:
Dialect
SqlServer用のSQL方言クラス。
-
Nested Class Summary
Modifier and TypeClassDescriptionprotected static class
SQLServer用のResultSet変換クラス。 -
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionconvertCountSql
(String sql) SQL文をレコード数取得用のSQL文に変換する。ping用のSQL文を返す。全てのカラムをResultSet.getObject(int)
で取得するコンバータを返す。boolean
isDuplicateException
(SQLException sqlException) SQL例外が一意制約違反による例外か否か。boolean
isTransactionTimeoutError
(SQLException sqlException) SQL例外がトランザクションタイムアウトと判断すべき例外か否か。boolean
IDENTITY(オートインクリメントカラム)が使用できるか否か。Methods inherited from class nablarch.core.db.dialect.DefaultDialect
buildSequenceGeneratorSql, convertPaginationSql, supportsIdentityWithBatchInsert, supportsOffset, supportsSequence
-
Constructor Details
-
SqlServerDialect
public SqlServerDialect()
-
-
Method Details
-
supportsIdentity
public boolean supportsIdentity()IDENTITY(オートインクリメントカラム)が使用できるか否か。 SQLServerは、identityカラムが定義できるのでtrue
を返す。- Specified by:
supportsIdentity
in interfaceDialect
- Overrides:
supportsIdentity
in classDefaultDialect
- Returns:
false
を返す。
-
isDuplicateException
SQL例外が一意制約違反による例外か否か。 キー重複(エラーコード:2627)及びユニークインデックスの値重複(エラーコード:2601)の場合に、 重複エラーとする。- Specified by:
isDuplicateException
in interfaceDialect
- Overrides:
isDuplicateException
in classDefaultDialect
- Parameters:
sqlException
- SQL例外- Returns:
false
を返す。
-
isTransactionTimeoutError
SQL例外がトランザクションタイムアウトと判断すべき例外か否か。 クエリーの実行キャンセルを表すSQLState(HY008)の場合のみトランザクションタイムアウト対象の例外とする。- Specified by:
isTransactionTimeoutError
in interfaceDialect
- Overrides:
isTransactionTimeoutError
in classDefaultDialect
- Parameters:
sqlException
- SQL例外- Returns:
false
を返す。
-
getResultSetConvertor
全てのカラムをResultSet.getObject(int)
で取得するコンバータを返す。varbinary(max)
で定義されたカラムの場合は、ResultSet.getBinaryStream(int)
の結果を返す、 ResultSetの変換クラスを返却する。- Specified by:
getResultSetConvertor
in interfaceDialect
- Overrides:
getResultSetConvertor
in classDefaultDialect
- Returns:
- 変換クラス。
-
convertCountSql
SQL文をレコード数取得用のSQL文に変換する。 以下形式のCOUNT文取得用SQL文に変換する。
SELECT COUNT(*) COUNT_ FROM ('引数のSQL') SUB_
SQLServerは、インラインビュー内にORDER BYを記述することが出来ない。 このため、レコード数取得のSQLに変換する際にSQLの一番最後に存在しているORDER BYを削除後に 件数取得用のSQLに変換する。- Specified by:
convertCountSql
in interfaceDialect
- Overrides:
convertCountSql
in classDefaultDialect
- Parameters:
sql
- SQL文- Returns:
- 変換したSQL文
-
getPingSql
Description copied from class:DefaultDialect
ping用のSQL文を返す。 データベースへの死活チェックを行うための、ping用SQL文を生成する。 デフォルト実装では、本メソッドはサポートしない。- Specified by:
getPingSql
in interfaceDialect
- Overrides:
getPingSql
in classDefaultDialect
- Returns:
- ping用のSQL文
-