[Spring] DAO, DTO, VO


DAO(Data Access Object)

  • DBでデータにアクセスするオブジェクト
    Persistence Layer(データベースのCRUD層)
  • DBアクセスロジックとビジネスロジックの分離
  • DB接続は通常使用可能
  • MyBatisなどを使用する場合、接続プール→DAOの個別作成を行うことはめったにありません.
  • public class TestDao {
    
     public void add(TestDTO dto) throws ClassNotFoundException, SQLException{
      Class.forName("com.mysql.jdbc.Driver");
      
      Connection conn= DriverManager.getConnection("jdbc:mysql://localhost/springbook", "spring", "book");
      
      PreparedStatement pstmt = conn.prepareStatement("insert into users(id,name,password) value(?,?,?)");
      
      pstmt.setString(1,  dto.getId());
      pstmt.setInt(2,  dto.getName());
      pstmt.setString(3,  dto.getPwd());
      
      pstmt.executeUpdate();
      
      pstmt.close();
      conn.close();
     }
    }

    DTO (Data Transfer Object)

  • 階層間データ交換用Java bean
    (ただし、レイヤはコントローラ、ビュー、ビジネスレイヤ、永続化レイヤ)
  • DBレコード中のデータオブジェクト
  • DBデータコントローラおよびサービス
  • へ送信
  • 論理なし-純データオブジェクト
  • データとGetter、Setterが存在する
    (toString()、equals()などの他のオブジェクトメソッドを作成できます)
  • public class TestDTO {
     
     private String id;
     
     private String name;
     
     private String pwd;
     
     public String getId() {
      return id;
     }
    
     public void setId(String id) {
      this.name = id;
     }
    
     public String getName() {
      return name;
     }
    
     public void setName(String name) {
      this.name = name;
     }
     
     public String getPwd() {
      return pwd;
     }
    
     public void setPwd(String pwd) {
      this.name = pwd;
     }
    }

    Property

  • GetterとSetterがGetとSetを承諾した後の単語はProperty
  • Property id,name,pwd
  • を上に表示
  • Propertyは、メンバー変数ではなくgetter setterからのid、name、およびpwdによって決定される
  • javaは異なるフレームワークの中で複製技術を使用してデータの自動化処理を実現し、標準規格はデータ自動化処理の中で最も重要である.
    (特定のクラスタイプがわからなくても、そのクラスのメソッド、タイプ、変数のJava APIにアクセスできます)
  • id、name、pwdをキー値として入力するデータは、レプリケーション技術によりsetterを実行してデータ
  • を入れることができる
  • setter
  • を要求するのではなく、フレーム内でsetterを実行します.

    VO (Value Object)

  • DTOと混合して使用しているが、わずかな差がある
    (DTOもVOもGetter経由)
  • データそのものを含む有意義なオブジェクト
  • Read Only属性オブジェクト不変クラス
  • VOは特定のトラフィック値を含むオブジェクトであり、DTOは層間通信のためのオブジェクトである