DB2のコントロールセンター等で、「インポート/エクスポート」をしようとすると、DBデータを特殊なファイルで保管する形になります。私はこれがとても気に入りません。
 ので、[[MySQL:http://dev.mysql.com/]]の [[mysqldump:http://dev.mysql.com/doc/refman/5.1/en/mysqldump.html]] のようなツールがあったらいいな、と思ってしまいました。

 [[mssqldump(MS SQL Server版)>C#/mssqldump]]もよろしく (^^;;

* db2dump [#b7ff4432]
- 実行ファイル &ref(http://jomura.net/archive/2009/db2dump-bin.zip);
- ソースファイル &ref(http://jomura.net/archive/2009/db2dump-src.zip);
- DBに格納されているデータを元に、それを登録する為のSQL文(INSERT文)を標準出力する。
-- コマンドライン引数は、出力対象のテーブル名。引数無しの場合は、全てのテーブルを出力する。

 Usage: db2dump [Option ...] [TableName ...]
 Options :
 -h, --help              この説明を表示する。
 -c, --complete-insert   INSERT文にカラム名の指定も含める。

- DB接続情報は、db2dump.propertiesファイルに記述する。
-- db2dump.propertiesファイルはjarファイルと同じフォルダに配置すること。
- binに同梱のbatファイルをjarファイルと同じフォルダに配置し、環境変数PATHを通しておくと便利かも。
- 配置パスに日本語が含まれるとダメです。m(__)m (半角空白には辛うじて対応)

*** 変更履歴 [#hfcea555]
- 2010.05.10 DBスキーマをプロパティ指定可能とした。

*** (参考) jarファイルのファイルパスをJavaコード内で取得する [#zaed90ae]
    /**
     * 実行可能なJARファイルとして実行されている場合には、
     * jarファイルが存在するフォルダパスを返す.<br />
     * classファイルとして実行されている場合には、
     * classファイルが存在するフォルダパスを返す.<br />
     * @return jar(class)ファイルが存在するフォルダパス
     */
    public final String getJarFilePath() {
        String classPath = getClass().getClassLoader().getResource(
            getClass().getName().replace('.', '/') + ".class").getPath();
 
        //JARファイルとして実行されている場合(1)
        if (classPath.startsWith("file:")) {
            classPath = classPath.substring("file:".length());
        }
        //JARファイルとして実行されている場合(2)
        if (-1 != classPath.lastIndexOf("!")) {
            classPath = classPath.substring(0, classPath.lastIndexOf("!"));
        }
 
        classPath = classPath.substring(0, classPath.lastIndexOf("/"));
        return classPath;
    }
 結構、面倒ですね。


トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS