0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

📘 Vol.7.1:Struts2 における Model(モデル)について

Last updated at Posted at 2025-05-20

🧭 はじめに

前回は Struts2 の MVC モデル全体像について解説しました。
今回はその中でも 「Model」層 に焦点をあてて、役割や構成要素、
そして本プロジェクトでの具体的な活用例を紹介します。


Model層の主な構成要素

💡 Model 層とは?

Model 層は、アプリケーションの「データの管理とビジネスロジック」を担当します。
具体的には次の2つの要素に分けられます。

💡 DAOの役割
DAO(Data Access Object)は、データベースとのやりとりを担うクラスで、SQL文の組み立て・実行や結果セットの処理を行います。

💡 JavaBeansの役割
JavaBeansは、プロパティ(データ)に対してgetter/setterを使ってアクセスするシンプルなJavaオブジェクトです。


✅ DAO(Data Access Object)

DAO は、データベース操作を担うクラスです。以下のような責務があります:

  • SQL 文の組み立て・実行(SELECT / INSERT / UPDATE / DELETE)
  • JDBC や ORマッパー(MyBatis など)との連携
  • 結果セットの処理・オブジェクト変換

💡 DAO の目的は「ビジネスロジックとDBアクセスを分離する」ことです。

👉 本プロジェクトでは:
/dao 配下に DAO クラスを配置し、
ユーザー・スレッド・投稿などの DB 操作を集約しています。


✅ JavaBeans(または DTO)

JavaBeans は、データ構造を保持するだけのシンプルな Java オブジェクトです。

public class User {
    private int userId;
    private String username;

    // getter / setter
}

主な特徴は以下の通り:

  • 各プロパティへのアクセスは getter / setter を通じて行う

  • 引数なしコンストラクタを持つ

  • Serializable に対応可能(必要に応じて)

👉 本プロジェクトでは:
User.java のようなクラスを利用し、
画面表示用や DAO とのデータ受け渡しに活用しています。

例えば:

  • ユーザー情報を保持する User.java

  • 掲示板スレッドを保持する Thread.java

  • 投稿情報を保持する Post.java

などが存在し、全体のデータ処理をスムーズにしています。

User.javaは、ログインユーザーや投稿者情報など、本プロジェクトの多くの機能で利用される基盤的なJavaBeanです。


📝 Model 層のポイントまとめ

要素 役割 本プロジェクトの使用場所
DAO DB操作を抽象化・集約 /dao 配下の UserDao.java など
JavaBeans データ構造の保持 /model 配下の User.java, Thread.java など

🚩 次回予告

次回は「📘 Vol.7.2:Struts2 における Controller(コントローラ)の責務
」について解説予定です。
POJOベースで構成される Struts2 の Action クラスの特性を活かし、
シンプルかつ柔軟なコントローラ設計を紐解いていきます!


🧭 Vol.1〜7 関連リンク

タイトル 主な内容
Vol.1 プログラミングとの再会 – 「画面ありき」で変わった学び方 プログラミング再入門と、画面駆動の学習法というユニークなアプローチの紹介。最初に「画面」から考えることでモチベーションを継続。
Vol.2 画面駆動設計に基づく設計書の具体例:画面フローからUI設計・処理定義まで 実際に描いた画面遷移図・UI設計・処理定義書を公開し、画面中心の設計手法を解説。
Vol.3 詳細設計編:ER図で見るデータ構造と実装の土台 実装前提で設計された ER図(Entity Relationship 図) をもとに、データ構造と整合性を設計。
Vol.4 Struts2とMavenの基礎と設定ファイルの役割 Struts2の構成とMavenでの管理、web.xmlpom.xml の役割を丁寧に解説。
Vol.5 環境構築編:掲示板アプリケーションの実行準備 TomcatとEclipseでの動作環境構築。
Vol.6 BaseActionクラスの詳細解説【Struts2の要】 すべてのアクションに共通する基底クラス BaseAction を定義し、ログ出力や共通処理を集約。
Vol.6.1 BaseAction の活用例【共通基底クラスでセッション管理を簡素化】 BaseAction を継承する具体的なアクション例を紹介し、セッションやログ処理の統合例を実践。
Vol.7 Struts2 における MVC モデルの全体像 Model-View-Controller の各要素が Struts2 でどう分担されるかを体系的に解説。
Vol.7.2 Struts2 における Controller(コントローラ)の責務 Actionクラスを軸に、入力処理・分岐処理・画面遷移の中核を担うControllerの実装指針を提示。
Vol.7.3 Struts2 における struts.xml の書き方と役割 URLマッピング、結果遷移、アクション定義の方法を丁寧に記述。初心者の詰まりやすいポイントを回避。
Vol.7.4 struts.xmlの高度な設定と実践活用(Struts2) namespaceの活用や画面単位での分離設計、開発時の保守性向上テクニックを紹介。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?