Last-modified: 2010-05-10 (Mon) 13:40:16 (122d)

 DB2のコントロールセンター等で、「インポート/エクスポート」をしようとすると、DBデータを特殊なファイルで保管する形になります。私はこれがとても気に入りません。
 ので、MySQLmysqldump のようなツールがあったらいいな、と思ってしまいました。

 mssqldump(MS SQL Server版)もよろしく (^^;;

db2dump

  • 実行ファイル filedb2dump-bin.zip
  • ソースファイル filedb2dump-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 (半角空白には辛うじて対応)

変更履歴

  • 2010.05.10 DBスキーマをプロパティ指定可能とした。

(参考) jarファイルのファイルパスをJavaコード内で取得する

   /**
    * 実行可能な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