About

ドキュメント

Javadoc

モジュール

プロジェクト文書

Built by Maven

説明

概要

指定されたファイルに含まれる任意のSQLを実行します。

実行できるSQLファイルの形式については、SQLファイル を参照ください。

接続先のデータベースはJdbcManagerのコンポーネント名によって決まります。

パラメータ

Antタスクへのパラメータを以下に示します。

トップレベルのパラメータ

属性 説明 デフォルト値 必須
sqlFileEncoding SQLファイルのエンコーディングです。 "UTF-8" NO
statementDelimiter SQLステートメントの区切り文字です。 ";" NO
blockDelimiter SQLブロックの区切り文字です。指定しない場合は、データベースのデフォルトの区切り文字が使用されます。たとえば、SQL Serverでは"go"、Oralce Databaseでは"/"、MySQLでは"/"、DB2では"@"が使用されます。 - NO
haltOnError "true"の場合、SQLの実行が失敗すると即座にエラーを返します。 "true" NO
transactional "true"の場合、単一のトランザクションとして実行します。 "false" NO
genDialectClassName S2JDBC-Genのダイアレクトインタフェースの実装クラス名です。ここに指定するクラスはorg.seasar.extension.jdbc.gen.dialect.GenDialectインタフェースを実装している必要があります。指定しない場合はS2JDBCのダイアレクト に対応したデフォルトのクラスが使用されます。 - NO
configPath JdbcManagerのコンポーネント定義を含む設定ファイルです。このタスクの実行に使用されます。 "s2jdbc.dicon" NO
env 環境名です。 "ut" NO
jdbcManagerName JdbcManagerのコンポーネント名です。 "jdbcManager" NO
factoryClassName S2JDBC-Genの公開されたインタフェースの実装を作成するファクトリのクラス名です。S2JDBC-Genをカスタマイズする場合に独自のファクトリクラスを指定できます。ここに指定するクラスはorg.seasar.extension.jdbc.gen.internal.factory.Factoryインタフェースを実装している必要があります。 "org.seasar.extension.jdbc.gen
.internal.factory.FactoryImpl"
NO
commandInvokerClassName S2JDBC-Genのコマンドを呼び出すクラスの名前です。コマンドの呼び出し前後で任意の処理を実行したい場合に指定します。ここに指定するクラスはorg.seasar.extension.jdbc.gen.command.CommandInvokerインタフェースを実装している必要があります。 "org.seasar.extension.jdbc.gen
.internal.command.CommandInvokerImpl"
NO
classpath このタスクを実行する際のクラスパスです。 - classpathrefが指定されていない場合YES
classpathref このタスクを実行する際のクラスパスの参照です。 - classpathが指定されていない場合YES

ネストした要素として指定されるパラメータ

SqlFileList

SQLファイルを指定するためには、<SqlFileList>要素を使用します。 この要素はひとつ以上の指定が必須です。

<SqlFileList>はAntの<FileList>と同じデータ型です。 使用可能な属性やネストした要素についてはAntのドキュメントを参照してください。

jvmArg

このタスクの大部分の処理は別VMで行われます。VMに引数を渡す場合は<jvmarg>要素を使用します。 これはAntのJavaタスクで使用できる<jvmarg>と同じです。 使用可能な属性やネストした要素についてはAntのドキュメントを参照してください。

SQLファイルを実行する

SQLファイルを実行するには、実行したいSQLファイルを<SqlFileList>に指定します。 次の例では1つのSQLファイルを指定していますが、複数のSQLを指定可能です。

<exec-sql
    classpathRef="classpath">
        <sqlFileList dir="sql">
            <file name="aaa.sql"/>
        </sqlFileList>
</exec-sql>

トランザクション内で実行する

SQLファイル内のSQLをトランザクション内で実行するには、transactional属性に"true"を指定します。

<exec-sql
    transactional="true"
    classpathRef="classpath">
        <sqlFileList dir="sql">
            <file name="aaa.sql"/>
            <file name="bbb.sql"/>
            <file name="ccc.sql"/>
        </sqlFileList>
</exec-sql>

上記の定義では、トランザクションが開始された後、aaa.sql、bbb.sql、ccc.sqlに記述されたSQLが順に実行され、エラーが発生しなければコミットされます。 エラーが発生した場合、トランザクションはロールバックされます。