【開発】エンティティオブジェクトの利用【考え方】

今回は、エンティティオブジェクトを利用するということについて書いてみます。

エンティティオブジェクトとは

エンティティオブジェクトはデータの塊を表現するオブジェクト定義です。

Javaではbeanと言われたりします。言語、フレームワークなどの環境で呼ばれ方はいろいろありますが構造はほぼ同じだと思います。

データの塊とは例えばデータベースを利用した場合、テーブルのカラム構成をそのままオブジェクトにした状態となります。

テーブルでの説明

以下のようなユーザーテーブルがあった場合に、エンティティオブジェクトで表現すると。

テーブル定義

No. カラム名(論理名) 備考
1 USER_ID(ユーザー番号) NUMERIC(数値) ユーザーの管理番号
2 USER_NAME(氏名) VARCHAR(文字列) ユーザーの名称
3 STATUS(登録状況) NUMERIC(数値) 0:仮登録、1:本登録
4 UPDATE_DATE(更新日) DATETIME(日時)
5 REGIST_DATE(登録日) DATETIME(日時)

エンティティオブジェクト

No. フィールド名 備考
1 userId int ユーザーの管理番号
2 userName string ユーザーの名称
3 status int 0:仮登録、1:本登録
4 updateDate DateTime
5 registDate DateTime

 


/**
 * ユーザー情報
 */
public class User {
    /**
     * ユーザ番号
     */
    int userId;

    /**
     * ユーザ氏名
     */
    string userName;

    /**
     * 登録状況
     */
    int status;

    /**
     * 更新日時
     */
    DateTime updateDate;

    /**
     * 登録日時
     */
    DateTime registDate;
}

プログラムコードから操作する場合、オブジェクトとしてデータを扱えるとわかりやすいと個人的には思います。
このエンティティオブジェクトを配列にすることでテーブル情報をそのまま扱うことも可能となります。

WEBアプリケーションでの説明

WEBアプリケーションだと、submitを行うとformタグ内のinputタグ、selectタグなどの情報をまとめてWEBサーバーへ送信する仕組みになります。これも、エンティティオブジェクトで取得できるようにするフレームワークがあります。※フレームワークについては、フレームワーク毎のお作法がいろいろと違うため本記事では詳細は割愛させていただきます。

HTML


<html>
<head>
</head>
<body>
  <form>
    <input name="userId" type="hidden" value="2" />
    <input name="userName" type="text" value="涼風青葉" />
    <select name="status">
      <option value="0">仮登録</option>
      <option value="1">本登録</option>
    </select>
    <input type="submit" value="送信" />
  </form>
</body>
</html>

エンティティオブジェクト


/**
 * ユーザー情報
 */
public class User {
    /**
     * ユーザ番号
     */
    int userId;

    /**
     * ユーザ氏名
     */
    string userName;

    /**
     * 登録状況
     */
    int status;
}

フレームワークの仕様にもよりますが、inputタグ、selectタグの名称とエンティティオブジェクトのフィールド名が一致する定義をすることでWEB画面から送信されたデータをエンティティオブジェクトとして受け取ることを実現してくれます。
このような、データベースの情報や画面の入力データなどをプログラムで扱いやすくするオブジェクトをエンティティオブジェクトと理解してます。

【開発環境構築】Mavenプロジェクトで実行Jarを作成【Java】

Java開発でMavenを使うことが多くなりなれてきたのでMavenプロジェクトを作成します。Mavenのいいところは「pom.xml」ファイルを編集することで外部jarファイルをダウンロードしてくれるところになります。



新規プロジェクト作成

「ファイル」→「新規」→「Mavenプロジェクト」を選択します。

「シンプルなプロジェクトの作成(S)(アーキタイプ選択のスキップ)」をチェックして「次へ」ボタンを押下します。

「グループId」、「アーティファクトId」を入力して「完了」ボタンを押下します。

グループId:一意に識別する名前(ルートパッケージなど)。(任意の文字列)

アーティファクトId:プロジェクトの名前。(任意の文字列)

アーティファクトIdに指定した名前のプロジェクトが追加されます。

パッケージの追加

ビルドを実行するプログラムを作成をするため、まずパッケージを作成します。

「src/main/java」を右クリックして「新規」→「パッケージ」を選択します。

「名前」を入力して「完了」ボタンを押下します。

パッケージが作成されます。

実行クラスの作成

起動時に実行するクラスを作成します。

折角なので「Swing」のUI画面を開始するようにします。

「src/main/java」に追加したパッケージで右クリックし「新規」→「その他」を選択します。

「WindowBuilder」→「Swingデザイナー」→「JFrame」を選択して、「次へ」ボタンを押下します。

「名前」を入力して「完了」ボタンを押下します。

クラスが作成されます。

ビルドの設定

「pom.xml」ファイルを開きます。

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.pg-nyoro</groupId>
  <artifactId>nyoro-tool</artifactId>
  <version>0.0.1-SNAPSHOT</version>
</project>

プロパティ定義(pom.xml内で利用する変数)を「<project>要素」に追加します。

  <!-- プロパティ定義 -->
  <properties>
  	<jdk.version>1.8</jdk.version>
  	<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

ビルド定義を「<project>要素」に追加します。

  <!-- ビルド設定 -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-shade-plugin</artifactId>
        <configuration>
          <transformers>
            <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer">
              <!-- 起動時に実行するクラスを指定する。 -->
              <mainClass>com.pg.nyoro.tool.MainFrame</mainClass>
            </transformer>
          </transformers>
        </configuration>
        <executions>
          <execution>
            <id>make-assembly</id>
            <phase>package</phase>
            <goals>
              <goal>shade</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>${jdk.version}</source>
          <target>${jdk.version}</target>
          <testSource>${jdk.version}</testSource>
          <testTarget>${jdk.version}</testTarget>
        </configuration>
      </plugin>
    </plugins>
    <resources>
      <resource>
        <directory>src/main/resources</directory>
      </resource>
    </resources>
  </build>

ビルドの実行

pom.xmlファイルを実行して実行可能なjarファイルを生成します。

「pom.xml」を見クリックして「実行」→「Maven ビルド…」を選択します。

「ゴール」に「package」を入力して「実行」ボタンを押下します。

コンソールにビルドの状態が表示され、最後に「BUILD SUCCESS」が表示されればビルド成功です。

プロジェクト上では以下のフォルダーに作成されています。

エクスプローラーでは以下のパスに格納されます。

「E:\pleiades-4.7.2-java\workspace\nyoro-tool\target\nyoro-tool-0.0.1-SNAPSHOT.jar」

※pleiades-4.7.2-java: Eclipseを展開したフォルダー名

※nyoro-tool: Mavenプロジェクト作成時に指定したアーティファクトId名

このパスはコンソールにも表示されておりますので確認できます。

実行可能Jarを起動

ビルドした実行可能Jarを起動します。

コマンドプロンプトを起動して以下のコマンドを実行します。

REM ## javaコマンドのパス指定
set path=%path%;E:\pleiades-4.7.2-java\java\8\bin\
REM ## 実行可能JARファイルの格納されているフォルダーへ移動
cd E:\pleiades-4.7.2-java\workspace\nyoro-tool\target
REM ## Jarファイルを実行
java -jar nyoro-tool-0.0.1-SNAPSHOT.jar

アプリケーションが実行されます。

なにも実装していないので空白の画面が表示されます。

ダブルクリックで実行する場合

Jarファイルを「Java」プログラムに関連付けすることでJarファイルをダブルクリックで実行することができます。ただ、Windows7の環境では動作したのですがWindows10の環境では動作しませんでした。

そのため、コマンド実行の方法を記載しております。

次回はspringを導入します。

【開発環境構築】swingでUIアプリの開発環境【java】

例えば職場でユーザの作業用に実行するコマンドを順番にならべた手順書を作成しているとき面倒だなと思ったことないでしょうか。
そんな時に、一連の作業を実行するツールを作ってツールの使い方を教えた方が気分的に楽しいかなと考えてツールづくりを始めようと思います。
Webアプリ開発環境でjavaを使うことが最近多く、Webアプリだとサーバー必須で環境関連でツール化するのが難しい・・・。
javaでUI作ろうと思うと「swing」を思いついて調べてみました。
今ではプラグインが充実していて開発するのが簡単になっていたので環境を構築する手順を書いてみます。



Eclipseダウンロード

まずは、Eclipseをインストールします。

職場でもよく使っている「Pleiades」という日本語化されたEclipseをダウンロードします。

http://mergedoc.osdn.jp/

今回は最新版の「Eclipse 4.7 Oxygen」をダウンロードします。

順番に押下するボタンを並べます。

 

容量は1.5GB程度なのでそれなりにダウンロードに時間がかかります。

Eclipseインストール

Cドライブなどドライブ直下にダウンロードしたファイルを移動して展開します。ファイルの展開には7zipを利用しました。

https://sevenzip.osdn.jp/

ダウンロードしたzipファイル「pleiades-4.7.2-java-win-64bit-jre_20171225.zip」を右クリックして「7-Zip」→「ここに展開」を実行します。

展開が完了すると以下のようなフォルダーが作成されます。

※複数のバージョンでEclipseを使う想定がある場合、展開後のフォルダー名を変更しておいた方がよいです。他のバージョンのEclipseを同じ手順で展開すると上書きされてEclipseが壊れてしまいます。

「pleiades」→「pleiades-4.7.2-java」など

インストールはこれで終わりになります。

Eclipse起動

Eドライブにインストールしました。

プログラムファイル「E:\pleiades-4.7.2-java\eclipse\eclipse.exe」を実行します。

実行すると以下のようなスプラッシュ画面が表示されますのでしばらく待ちます。

しばらくすると以下のようにワークスペースの選択を要求してきますのでそのまま「起動」ボタンを押下します。

スプラッシュ画面が表示された後に起動した画面が以下の通りでございます。

プラグインインストール

「ヘルプ」→「新規ソフトウェアのインストール…」を選択します。

作業対象に「Oxygen – http://download.eclipse.org/releases/oxygen」を選択します。

「swing」でフィルターを指定します。

「一般用ツール」→「Swingデザイナー」を選択して「次へ」ボタンを押下します。

「次へ」ボタンを押下してインストールを実行します。

「使用条件の条項に同意します。」をチェックして「完了」ボタンを押下します。

バックグラウンドでインストールが行われ、しばらくするとダイアログが表示されるので「今すぐ再起動」ボタンを押下します。

Eclipseが再起動されます。

インストール後の確認

Eclipseが起動したら「ファイル」→「新規」→「その他」を選択します。

「Swingデザイナー」が追加されていればインストール成功です。

次回はMavenプロジェクトを作成します。

【開発環境構築】swingでUIアプリの開発環境【java】