データ作成用ツール【データ作成編】

以前環境設定をしたこのツールで実際にデータを作っていきます。

データ作成用ツール【環境設定編】
MySQLとServletを使ってマスター情報を作成する汎用的なツールを作成中です。 エクセルでデータ入力してるようなものを想定しています。 不具合や要望がありましたらTwitterまでご連絡ください。 ざっくり構成 ...

 

応用編もあります。

データ作成用ツール【応用編】
前回は基本的なデータ入力の方法を解説しました。 今回では応用編と言いますか、各種便利機能を解説します。 基礎データの値をそのまま利用する 基礎データの値をそのままマスターデータに利用する際は、基礎データをそのまま返すgetメソッド...

基礎データを作る

データを作る際はまず基本となるデータを入力してそれに何らかの計算をして最終的な数値として扱うと思います。

まずこの基礎データを作ります。

今回はひとまず敵のパラメータを例にとって以下の基礎データを入力します。

整数 文字列 小数 小数
enemy_id enemy_name hp_rate attack_rate
1 スライム 1 1
2 ゴブリン 1.5 1.5

ではこれをDBに入力します。

テーブル作成

前回のテストデータ作成と同様にテーブルを作成します。

テーブル名は「master_enemy_data」にしました。

カラム数は上記の通り4つです。

phpMyAdmin_createTable2

カラムの設定も上の表のとおりにします。

INTが整数、TEXTが文字列、DECIMALが小数です。

DECIMALの右側には数値の桁数を指定します。

カンマの右側が小数点以下の桁数、左側が整数と小数を含めた全部の桁数です。

phpMyAdmin_createTable3

これで目当てのテーブルが出来上がります。

データ入力

上記テーブルのデータを入力していきます。

phpMyAdmin_insert

「insert」から行の追加が出来ます。

phpMyAdmin_insert2

そのまま入力します。

入力が終わったら左上の「Browse」から入力したデータが確認できます。

phpMyAdmin_select

ツールの方でも確認してみます。

plan_dm_view

変換ルールを作る

では基礎データをもとにマスターデータを作るための変換ルールを設定します。

ルールとしては、

  • enemy_idとenemy_nameはそのまま利用する
  • hp_rateは100倍して小数点以下を切り捨てた整数値をhpという名前で利用する
  • attack_rateは10倍して小数点以下を切り捨てた整数値をattackという名前で利用する

とします。

テンプレから作る

まずはファイルを生成します。

ファイルは名前を「Table_【テーブル名】」として「plan.tables」に配置します。

上記ならテーブル名が「master_enemy_data」なので、ファイル名は「Table_master_enemy_data」です。

NetBeansで「ソース・パッケージ」→「plan.tables」を右クリックして「新規」→「Javaクラス」を選択します。

netbeans_newclass

クラス名、場所、パッケージが間違ってないか確認して終了します。

netbeans_newclass2

 

 

次にツールのテーブル一覧から「テンプレート生成」を選択します。

plan_dm_template

 

plan_dm_template2

テンプレートの内容をコピーして先ほど作ったJavaクラスファイルへペーストします。

plan_dm_template3

Ctrl+sでファイルを保存して、プロジェクトを右クリックして「ビルド」→「デバッグ」の順に選択します。

plan_dm_build_run

 

この状態でツールを見ると変換後のデータが生成されています。

plan_dm_view2

この「Table_master_enemy_data」クラスが、「master_enemy_data」の行のデータを変換してマスターデータにします。

先ほど決めた変換ルールをクラスに実装する

 

  • enemy_idとenemy_nameはそのまま利用する
  • hp_rateは100倍して小数点以下を切り捨てた整数値をhpという名前で利用する
  • attack_rateは10倍して小数点以下を切り捨てた整数値をattackという名前で利用する

これを実装します。

enemy_idとenemy_nameは出来ているのでそのままです。

まず、hp_rateを変更します。

hp_rate

まず「100倍して」「小数点以下を切り捨て」て「整数」にします。

すでにある「get_hp_rate」メソッドを編集します。

    /**
     * hp_rateカラムを生成する
     *
     * @return セルの中身
     */
    @ColumnOrder( 3 )
    public double get_hp_rate()
    {
        return hp_rate;
    }

これを次のように変更します。

    /**
     * hp_rateカラムを生成する
     *
     * @return セルの中身
     */
    @ColumnOrder( 3 )
    public int get_hp_rate()
    {
        // 100倍
        double bi100 = hp_rate * 100;
        // 切り捨て
        double floor = Math.floor( bi100 );
        // 整数に
        int result = (int) floor;
        return result;
    }

注意点としては戻り値が整数であるintへ変更されています。(public int get_hp_rate)

次に名前は「hp_rate」から「hp」へ変更します。

    /**
     * hp_rateカラムを生成する
     *
     * @return セルの中身
     */
    @ColumnOrder( 3 )
    public int get_hp()
    {
        // 100倍
        double bi100 = hp_rate * 100;
        // 切り捨て
        double floor = Math.floor( bi100 );
        // 整数に
        int result = (int) floor;
        return result;
    }

メソッド名を「get_hp」に変更しただけですが、これだけで名前変更は終わりです。

この状態でまた、ビルドとデバッグをしてツールで確認してみてください。hp_rateが整数型のhpに変更されているはずです。

attack_rate

同じく「10倍」して「小数点以下を切り捨て」して「整数」にします。名前も「attack」へ。

    /**
     * attack_rateカラムを生成する
     *
     * @return セルの中身
     */
    @ColumnOrder( 4 )
    public int get_attack()
    {
        double bi100 = attack_rate * 10;
        double floor = Math.floor( bi100 );
        int result = (int) floor;
        return result;
    }

仕組み

このツールではクラスやメソッドの名前やアノテーション(@から始まる目印)を解析して自動生成しています。

テーブルの定義

テーブルの定義は「Table_【テーブル名】」というクラスです。

このクラスと基礎データのテーブルの双方が存在すれば変換されます。

カラムの定義

変換後のテーブルのカラムの情報は変換クラス内の「get_」から始まるメソッドがカラムに割り当てられます。

「get_hoge」というメソッドが定義されている場合は、「hoge」カラムが生成されます。

元の基礎データのカラムを引き継ぐ必要はありません。基礎データからカラムが増えたり減ったり、変化しても問題ありません。

カラムの型

カラムの型は上記カラム用メソッドの返り値を解析して適切なものに設定されます。

基礎データの値

基礎データに設定された値はカラムと同じ名前のメンバ変数を定義すると自動で設定されます。

 


 

次回はこのツールの応用編です。

データ作成用ツール【応用編】
前回は基本的なデータ入力の方法を解説しました。 今回では応用編と言いますか、各種便利機能を解説します。 基礎データの値をそのまま利用する 基礎データの値をそのままマスターデータに利用する際は、基礎データをそのまま返すgetメソッド...
タイトルとURLをコピーしました