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?

Java dtoなどのデータマップまとめ

0
Posted at

ControllerとActionは同義

Service ロジックを記述する
 →ロジックだったりデータ取得を記述する

Dto(Data Transfer Object)
 →formから受け取ったデータが入っている

Entity(DBの形を定義する箱)
 →DBの型が定義されている箱

Mapper(DtoをEntityに入れる作業をする場所)
 →Entity = Dto みたいな感じの受け渡しをする場所
Dao(データを入れる実装部分)
 →dao.insert(entity) のよう実際にDBにアクセスする

画面から送られてきたデータをDBに保存する
[画面のフォーム]
      │
      ▼ 【Controller / Action】がリクエストをキャッチ!
   ┌──┴──────────────────────────────────────┐
   │ データを【Dto】という仮の箱に入れる     │
   └──┬──────────────────────────────────────┘
      │
      ▼ 【Service】に箱が引き渡される(ここからディープな内部処理)
   ┌──┴──────────────────────────────────────┐
   │  ① 業務ロジック(データのチェックなど)を実行│
   │  ② 【Mapper】を使って、値を詰め替える! │
   │     👉 entity = dto(DBの型に変身)      │
   └──┬──────────────────────────────────────┘
      │
      ▼ 【Dao】という職人に、変身した【Entity】を手渡す!
   ┌──┴──────────────────────────────────────┐
   │ 【Dao】の実装クラスがSQLを組み立てて、   │
   │ 実際にデータベースへガチッと insert する!│
   └──┬──────────────────────────────────────┘
      │
      ▼
 [データベース] ── 保存完了!

今度は、DBから取得したデータを画面へ渡す

[データベース] ── データ(レコード)が存在
     │
     ▼ 【Dao】がDBからデータを引っ張ってくる!
  ┌──┴──────────────────────────────────────┐
  │ 取得したデータを、DBの型である          │
  │ 【Entity】という本番用の箱に詰める      │
  └──┬──────────────────────────────────────┘
     │
     ▼ 【Service】に【Entity】が引き渡される(外へ向かう処理)
  ┌──┴──────────────────────────────────────┐
  │  ① 必要に応じて業務ロジック(加工など)を実行│
  │  ② 【Mapper】を使って、値を詰め替える! │
  │     👉 dto = entity(画面用の型に変身)  │
  └──┬──────────────────────────────────────┘
     │
     ▼ 【Controller / Action】に、変身した【Dto】を返す!
  ┌──┴──────────────────────────────────────┐
  │ 画面に見せたくない情報(内部IDやパスワードなど)│
  │ が除外された、綺麗な【Dto】を受け取る    │
  └──┬──────────────────────────────────────┘
     │
     ▼ 【Dto】のデータを画面(ブラウザ)にレンダリング!
[画面のフォーム / 一覧画面] ── ユーザーの元にデータが届く!

ブラウザの画面(jsp/html)で、forなどを用いたりしながらデータを表示させることができる

この「役割分担(責務の分離)」が行われているからこそ、大規模なシステムでもコードが散らからずに、スピード感を持って開発やテストができるようになる。

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?