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 クラスの特性を活かし、
シンプルかつ柔軟なコントローラ設計を紐解いていきます!

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?