본문 바로가기
Japanese/일본 기본 정보 기술자 자격증

[Spring勉強] DAOっていったい何??

by 나리일 2022. 1. 23.

DAO(Data Access Object)は

その英語の意味通り、DBに接続する際に使うオブジェクトである。

DBに接続してデータを取得、変更する機能をするオブジェクトをいう。

 

前にDBで管理する対象(普通はDBテーブルの名前)を付け、

OODaoに名付ける。

UserクラスがあればUserDao、

ReviewクラスがあればReviewDao。こんな形で。

 

例えば、アプリに新規取得機能を入れる場合、

必要のクラスを考えてみよう。

まずはUserクラスが必要だ。

public class User{
	String id;
    String password;
    String name;
    String address;
    
    // ここにgetter, setterまで必要。
}

そして、そのUserの情報を入れるDBテーブルも必要だ。

フィールド タイプ 設定
id varchar(10) Primary Key
password varchar(10) Not Null
name varchar(10) Not Null
address varchar(10) Not Null

このように作ったけど、この二つを繋がりたいとどうしたらいいのか?

この機能をしてくれるのが、まさにDAOである。

UserDaoの概要を書いてみよう。(ただし、コンセプトだけを理解するためのコードなので、活用はかねます。)

public class UserDao{
	private ConnectionMaker connectionMaker = new ConnectionMaker();
    
    public UserDao(ConnectionMaker connectionMaker){
    	this.connectionMaker = connectionMaker;
    }
    public void add(User user){
    	Connection c = connectionMaker.makeConnection();
        ...
    }
    public User get(String id){
    	Connection c = connectionMaker.makeConnection();
        ...
    }
}

こんな風にDBと繋がりを手伝ってくれるの機能をするものがDAOだ。

댓글