クラス ScriptUtils

java.lang.ObjectSE
org.springframework.jdbc.datasource.init.ScriptUtils

public abstract class ScriptUtils extends ObjectSE
JDBC と組み合わせて SQL スクリプトを操作するための汎用ユーティリティメソッド。

主にフレームワーク内での内部使用向け。

導入:
4.0.3
作成者:
Thomas Risberg, Sam Brannen, Juergen Hoeller, Keith Donald, Dave Syer, Chris Beams, Oliver Gierke, Chris Baldwin, Nicolas Debeissat, Phillip Webb
関連事項:
  • フィールドの詳細

    • DEFAULT_STATEMENT_SEPARATOR

      public static final StringSE DEFAULT_STATEMENT_SEPARATOR
      SQL スクリプト内のデフォルトのステートメント区切り文字: ";"
      関連事項:
    • FALLBACK_STATEMENT_SEPARATOR

      public static final StringSE FALLBACK_STATEMENT_SEPARATOR
      SQL スクリプト内のフォールバックステートメントの区切り文字: "\n"

      特定のスクリプトにカスタムセパレータも DEFAULT_STATEMENT_SEPARATOR も存在しない場合に使用されます。

      関連事項:
    • EOF_STATEMENT_SEPARATOR

      public static final StringSE EOF_STATEMENT_SEPARATOR
      ファイルの終わり(EOF)SQL ステートメントの区切り文字: "^^^ END OF SCRIPT ^^^"

      この値は、separator から executeSqlScript(Connection, EncodedResource, boolean, boolean, String, String, String, String) として提供され、SQL スクリプトに、明示的なステートメント区切り文字のない単一のステートメント(複数行にわたる可能性がある)が含まれていることを示します。このようなスクリプトには、実際にはこの値を含めないでください。これは単なる仮想ステートメントセパレータです。

      関連事項:
    • DEFAULT_COMMENT_PREFIX

      public static final StringSE DEFAULT_COMMENT_PREFIX
      SQL スクリプト内の単一行コメントのデフォルトのプレフィックス: "--"
      関連事項:
    • DEFAULT_COMMENT_PREFIXES

      public static final StringSE[] DEFAULT_COMMENT_PREFIXES
      SQL スクリプト内の単一行コメントのデフォルトの接頭部: ["--"]
      導入:
      5.2
    • DEFAULT_BLOCK_COMMENT_START_DELIMITER

      public static final StringSE DEFAULT_BLOCK_COMMENT_START_DELIMITER
      SQL スクリプト内のブロックコメントのデフォルトの開始区切り文字: "/*"
      関連事項:
    • DEFAULT_BLOCK_COMMENT_END_DELIMITER

      public static final StringSE DEFAULT_BLOCK_COMMENT_END_DELIMITER
      SQL スクリプト内のブロックコメントのデフォルトの終了区切り文字: "*/"
      関連事項:
  • コンストラクターの詳細

    • ScriptUtils

      public ScriptUtils()
  • メソッドの詳細

    • executeSqlScript

      public static void executeSqlScript(ConnectionSE connection, Resource resource) throws ScriptException
      ステートメント区切り文字、コメント区切り文字、例外処理フラグのデフォルト設定を使用して、指定された SQL スクリプトを実行します。

      提供されたスクリプト内で個々のステートメントを実行する前に、ステートメントの区切り文字とコメントが削除されます。

      警告 : このメソッドは提供された ConnectionSE を解放しませ

      パラメーター:
      connection - スクリプトの実行に使用する JDBC 接続。構成済みですぐに使用できます
      resource - SQL スクリプトをロードするリソース。現在のプラットフォームのデフォルトのエンコーディングでエンコード
      例外:
      ScriptException - SQL スクリプトの実行中にエラーが発生した場合
      関連事項:
    • executeSqlScript

      public static void executeSqlScript(ConnectionSE connection, EncodedResource resource) throws ScriptException
      ステートメント区切り文字、コメント区切り文字、例外処理フラグのデフォルト設定を使用して、指定された SQL スクリプトを実行します。

      提供されたスクリプト内で個々のステートメントを実行する前に、ステートメントの区切り文字とコメントが削除されます。

      警告 : このメソッドは提供された ConnectionSE を解放しませ

      パラメーター:
      connection - スクリプトの実行に使用する JDBC 接続。構成済みですぐに使用できます
      resource - SQL スクリプトをロードするリソース(特定のエンコーディングに関連付けられている可能性があります)
      例外:
      ScriptException - SQL スクリプトの実行中にエラーが発生した場合
      関連事項:
    • executeSqlScript

      public static void executeSqlScript(ConnectionSE connection, EncodedResource resource, boolean continueOnError, boolean ignoreFailedDrops, StringSE commentPrefix, @Nullable StringSE separator, StringSE blockCommentStartDelimiter, StringSE blockCommentEndDelimiter) throws ScriptException
      指定された SQL スクリプトを実行します。

      提供されたスクリプト内で個々のステートメントを実行する前に、ステートメントの区切り文字とコメントが削除されます。

      警告 : このメソッドは提供された ConnectionSE を解放しませ

      パラメーター:
      connection - スクリプトの実行に使用する JDBC 接続。構成済みですぐに使用できます
      resource - SQL スクリプトをロードするリソース(特定のエンコーディングに関連付けられている可能性があります)
      continueOnError - エラーが発生した場合に例外をスローせずに続行するかどうか
      ignoreFailedDrops - DROP ステートメントで特にエラーが発生した場合に続行するかどうか
      commentPrefix - SQL スクリプトの単一行コメントを識別する接頭辞 (通常は "-" )
      separator - スクリプトステートメントの区切り文字。指定されていない場合のデフォルトは ";" で、最後の手段として "\n" にフォールバックします。「^^^ スクリプトの終わり ^^^」に設定して、スクリプトにセパレータのない単一のステートメントが含まれていることを通知できます
      blockCommentStartDelimiter - 開始ブロックのコメント区切り文字
      blockCommentEndDelimiter - 終了ブロックのコメント区切り文字
      例外:
      ScriptException - SQL スクリプトの実行中にエラーが発生した場合
      関連事項:
    • executeSqlScript

      public static void executeSqlScript(ConnectionSE connection, EncodedResource resource, boolean continueOnError, boolean ignoreFailedDrops, StringSE[] commentPrefixes, @Nullable StringSE separator, StringSE blockCommentStartDelimiter, StringSE blockCommentEndDelimiter) throws ScriptException
      指定された SQL スクリプトを実行します。

      提供されたスクリプト内で個々のステートメントを実行する前に、ステートメントの区切り文字とコメントが削除されます。

      警告 : このメソッドは提供された ConnectionSE を解放しませ

      パラメーター:
      connection - スクリプトの実行に使用する JDBC 接続。構成済みですぐに使用できます
      resource - SQL スクリプトをロードするリソース(特定のエンコーディングに関連付けられている可能性があります)
      continueOnError - エラーが発生した場合に例外をスローせずに続行するかどうか
      ignoreFailedDrops - DROP ステートメントで特にエラーが発生した場合に続行するかどうか
      commentPrefixes - SQL スクリプトの単一行コメントを識別する接頭辞 (通常は "-" )
      separator - スクリプトステートメントの区切り文字。指定されていない場合のデフォルトは ";" で、最後の手段として "\n" にフォールバックします。「^^^ スクリプトの終わり ^^^」に設定して、スクリプトにセパレータのない単一のステートメントが含まれていることを通知できます
      blockCommentStartDelimiter - 開始ブロックのコメント区切り文字
      blockCommentEndDelimiter - 終了ブロックのコメント区切り文字
      例外:
      ScriptException - SQL スクリプトの実行中にエラーが発生した場合
      導入:
      5.2
      関連事項:
    • readScript

      @DeprecatedSE public static StringSE readScript(LineNumberReaderSE lineNumberReader, @Nullable StringSE commentPrefix, @Nullable StringSE separator, @Nullable StringSE blockCommentEndDelimiter) throws IOExceptionSE
      使用すべきではありません。
      Spring Framework 5.2.16 の時点で、代替の予定はありません。これは内部 API であり、Spring Framework 6.0 で削除される可能性があります。
      提供されたコメント接頭辞とステートメント区切り文字を使用して、提供された LineNumberReader からスクリプトを読み取り、行を含む String を構築します。

      コメント接頭辞で始まる行は結果から除外されます。ただし、他の場所(たとえば、ステートメント内)の行コメントは結果に含まれます。

      パラメーター:
      lineNumberReader - 処理するスクリプトを含む LineNumberReader 
      commentPrefix - SQL スクリプトのコメントを識別する接頭辞 (通常は "-" )
      separator - SQL スクリプトのステートメント区切り文字 (通常は ";" )
      blockCommentEndDelimiter - 終了ブロックのコメント区切り文字
      戻り値:
      スクリプト行を含む String 
      例外:
      IOExceptionSE - I/O エラーの場合
    • readScript

      @DeprecatedSE public static StringSE readScript(LineNumberReaderSE lineNumberReader, @Nullable StringSE[] commentPrefixes, @Nullable StringSE separator, @Nullable StringSE blockCommentEndDelimiter) throws IOExceptionSE
      使用すべきではありません。
      Spring Framework 5.2.16 の時点で、代替の予定はありません。これは内部 API であり、Spring Framework 6.0 で削除される可能性があります。
      提供されたコメント接頭辞とステートメント区切り文字を使用して、提供された LineNumberReader からスクリプトを読み取り、行を含む String を構築します。

      コメント接頭辞のいずれかで始まる行は結果から除外されます。ただし、他の場所(たとえば、ステートメント内)の行コメントは結果に含まれます。

      パラメーター:
      lineNumberReader - 処理するスクリプトを含む LineNumberReader 
      commentPrefixes - SQL スクリプト内のコメントを識別する接頭辞 (通常は "-" )
      separator - SQL スクリプトのステートメント区切り文字 (通常は ";" )
      blockCommentEndDelimiter - 終了ブロックのコメント区切り文字
      戻り値:
      スクリプト行を含む String 
      例外:
      IOExceptionSE - I/O エラーの場合
      導入:
      5.2
    • containsSqlScriptDelimiters

      @DeprecatedSE public static boolean containsSqlScriptDelimiters(StringSE script, StringSE delimiter)
      使用すべきではありません。
      Spring Framework 5.2.16 の時点で、代替の予定はありません。これは内部 API であり、Spring Framework 6.0 で削除される可能性があります。
      提供された SQL スクリプトに指定された区切り文字が含まれているかどうかを判別します。

      このメソッドは、各 SQL ステートメントを区切る文字列を見つけるために使用することを目的としています。たとえば、";" キャラクター。

      スクリプト内での区切り文字の出現は、一重引用符(')または二重引用符(")で囲まれたテキストのリテラルブロック内にある場合、バックスラッシュでエスケープされている場合(\)、または内にある場合は無視されます。単一行のコメントまたはブロックコメント。

      パラメーター:
      script - 検索する SQL スクリプト
      delimiter - 検索するステートメント区切り文字
      関連事項:
    • splitSqlScript

      @DeprecatedSE public static void splitSqlScript(StringSE script, char separator, ListSE<StringSE> statements) throws ScriptException
      使用すべきではありません。
      Spring Framework 5.2.16 の時点で、代替の予定はありません。これは内部 API であり、Spring Framework 6.0 で削除される可能性があります。
      SQL スクリプトを、提供された区切り文字で区切られた個別のステートメントに分割します。個々のステートメントは、提供された List に追加されます。

      スクリプト内では、"--" がコメント接頭辞として使用されます。コメント接頭辞で始まり、行の終わりまで続くテキストは、出力から省略されます。同様に、"/*" および "*/" は、ブロックコメントの開始および終了の区切り文字として使用されます。ブロックコメントで囲まれたテキストは、出力から省略されます。さらに、隣接する複数の空白文字は 1 つのスペースに折りたたまれます。

      パラメーター:
      script - SQL スクリプト
      separator - 各ステートメントを区切る文字 (通常は ";" )
      statements - 個々のステートメントを含むリスト
      例外:
      ScriptException - SQL スクリプトの分割中にエラーが発生した場合
      関連事項:
    • splitSqlScript

      @DeprecatedSE public static void splitSqlScript(StringSE script, StringSE separator, ListSE<StringSE> statements) throws ScriptException
      使用すべきではありません。
      Spring Framework 5.2.16 の時点で、代替の予定はありません。これは内部 API であり、Spring Framework 6.0 で削除される可能性があります。
      SQL スクリプトを、提供された区切り文字列で区切られた個別のステートメントに分割します。個々のステートメントは、提供された List に追加されます。

      スクリプト内では、"--" がコメント接頭辞として使用されます。コメント接頭辞で始まり、行の終わりまで続くテキストは、出力から省略されます。同様に、"/*" および "*/" は、ブロックコメントの開始および終了の区切り文字として使用されます。ブロックコメントで囲まれたテキストは、出力から省略されます。さらに、隣接する複数の空白文字は 1 つのスペースに折りたたまれます。

      パラメーター:
      script - SQL スクリプト
      separator - 各ステートメントを区切るテキスト (通常は ";" または改行文字)
      statements - 個々のステートメントを含むリスト
      例外:
      ScriptException - SQL スクリプトの分割中にエラーが発生した場合
      関連事項:
    • splitSqlScript

      @DeprecatedSE public static void splitSqlScript(@Nullable EncodedResource resource, StringSE script, StringSE separator, StringSE commentPrefix, StringSE blockCommentStartDelimiter, StringSE blockCommentEndDelimiter, ListSE<StringSE> statements) throws ScriptException
      使用すべきではありません。
      Spring Framework 5.2.16 の時点で、代替の予定はありません。これは内部 API であり、Spring Framework 6.0 で削除される可能性があります。
      SQL スクリプトを、提供された区切り文字列で区切られた個別のステートメントに分割します。個々のステートメントは、提供された List に追加されます。

      スクリプト内では、提供された commentPrefix が優先されます。コメントプレフィックスで始まり、行の終わりまで続くテキストは、出力から省略されます。同様に、提供された blockCommentStartDelimiter および blockCommentEndDelimiter 区切り文字が優先されます。ブロックコメントで囲まれたテキストは、出力から省略されます。さらに、隣接する複数の空白文字は 1 つのスペースに折りたたまれます。

      パラメーター:
      resource - スクリプトが読み込まれたリソース
      script - SQL スクリプト
      separator - 各ステートメントを区切るテキスト (通常は ";" または改行文字)
      commentPrefix - SQL 行コメントを識別する接頭辞 (通常は "-" )
      blockCommentStartDelimiter - 開始ブロックのコメント区切り文字。null または空ではありません
      blockCommentEndDelimiter - 終了ブロックのコメント区切り文字。null または空ではありません
      statements - 個々のステートメントを含むリスト
      例外:
      ScriptException - SQL スクリプトの分割中にエラーが発生した場合
    • splitSqlScript

      @DeprecatedSE public static void splitSqlScript(@Nullable EncodedResource resource, StringSE script, StringSE separator, StringSE[] commentPrefixes, StringSE blockCommentStartDelimiter, StringSE blockCommentEndDelimiter, ListSE<StringSE> statements) throws ScriptException
      使用すべきではありません。
      Spring Framework 5.2.16 の時点で、代替の予定はありません。これは内部 API であり、Spring Framework 6.0 で削除される可能性があります。
      SQL スクリプトを、提供された区切り文字列で区切られた個別のステートメントに分割します。個々のステートメントは、提供された List に追加されます。

      スクリプト内では、提供された commentPrefixes が優先されます。コメントプレフィックスの 1 つで始まり、行の終わりまで続くテキストは、出力から省略されます。同様に、提供された blockCommentStartDelimiter および blockCommentEndDelimiter 区切り文字が優先されます。ブロックコメントで囲まれたテキストは、出力から省略されます。さらに、隣接する複数の空白文字は 1 つのスペースに折りたたまれます。

      パラメーター:
      resource - スクリプトが読み込まれたリソース
      script - SQL スクリプト
      separator - 各ステートメントを区切るテキスト (通常は ";" または改行文字)
      commentPrefixes - SQL 行コメントを識別する接頭辞 (通常は "-" )
      blockCommentStartDelimiter - 開始ブロックのコメント区切り文字。null または空ではありません
      blockCommentEndDelimiter - 終了ブロックのコメント区切り文字。null または空ではありません
      statements - 個々のステートメントを含むリスト
      例外:
      ScriptException - SQL スクリプトの分割中にエラーが発生した場合
      導入:
      5.2