
Webアプリで、JDBCを利用したアプリを作成する場合は、DAO/DTOパターンという設計が良く使われます。
DAOとは?
DAOは、「Data Access Object」の略で、データベースへアクセスする専用のクラスを作りましょうというパターンです。
メリット
- 役割を明確化できる。
- 複数のクラスからの再利用性、保守性が高まる。
実装例
以下のように用途ごとにデータアクセスクラスを作っていくようにする。
- 発注データアクセスクラス
- 受注データアクセスクラス
DBManagerクラスとの違いは?
DBManagerクラスは、データベースとのコネクションをつないだり、SQLを発行するというユーティリティ的な役割に比べると、DAOは、もう少し高度なビジネスロジックに近い処理を行うクラスになります。
実装時に心がけること
直接DAOをnewするのではなく、DAOのファクトリクラス、インターフェース、実装クラスを用意して、「データベースが変わっても、ソースコードは変わらない」といった実装にするように心がける。
DTOとは?
DTOは、「Data Transfer Object」の略で、データの入れ物としてのクラスを作成して、それにデータを入れて渡そうというパターンで、非常によく利用されているのを見かけます。
JavaBeansの概念を基に作られました。
メリット
- わかりやすく使い勝手が良い。
- ArrayListなどと違って型の異なるデータを一括で配列を一括で管理することができます。
デメリット
オブジェクト指向というよりは、手続き型の概念に近いので、設計上「美しくない」といわれることがある。
ユースケース
データベースから取得したデータをこれに入れ込んで別クラスに受け渡す。
実装例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
public class UserDto { private int id; private String name; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } } |
privateなフィールド、ゲッターとセッターを用意してそれによってこのクラスにアクセスします。
この記事へのコメントはありません。