3

いくつかのデータベース プロパティを取得して MYSQL スクリプトを実行する ANT タスクを作成しようとしています。特定のデータベースについては、正常に動作しています。私が持っているものは次のとおりです。

設定可能なプロパティ ファイル:

sql.driver=com.mysql.jdbc.Driver
sql.url=jdbc:mysql://127.0.0.1:3306/
sql.user=admin
sql.pass=admin

そして build.xml ant ファイル:

<target name="rebuild-database">
     <sql driver="${sql.driver}" url="${sql.url}" userid="${sql.user}" password="${sql.pass}">
          <transaction src="db/rebuild.sql"/>
          <classpath>
               <path refid="project.class.path"/>
          </classpath>
     </sql>
</target>

これで問題なく動作します。SQL スクリプトはデータベースを再構築します。ただし、このデータベース名も構成可能にしたいと考えています。sql.url プロパティの後にデータベース名を追加できることはわかっていますが、問題は次のとおりです。rebuild.sql ファイルは、データベースが存在する場合はデータベースを削除して再構築する必要があります。次のようになります。

再構築.sql

DROP DATABASE IF EXISTS `client_database`;    
CREATE DATABASE `client_database` 
USE `client_database`;

CREATE TABLE `Customer` (
etc...

したがって、私の問題は、現在client_databaseハードコードされていることですが、プロパティファイルで構成可能な名前にする必要があります。この名前を sql スクリプトに渡し、最初の 3 つのステートメントを実行するにはどうすればよいでしょうか?

4

1 に答える 1

2

あなたはできる

  • rebuild.sql の最初の 3 行 (プロローグ) を残りの行から分割します。
  • パラメータ ${dbname} を使用して cat、echo などでプロローグを作成し、rebuild.sql の (定数) 本体と一緒に > parambuild.sql にリダイレクトします。
  • 生成された parambuild.sql を呼び出す
于 2011-09-06T15:44:24.973 に答える