Latest web development tutorials

データアクセスオブジェクトパターン

データアクセスオブジェクトモデル(データアクセスオブジェクトパターン)や、低レベルのデータ・アクセスAPIのDAOパターンや高度なビジネス・サービスの操作から分離。 以下は、データアクセスオブジェクトパターンで参加しています。

  • インタフェースデータアクセスオブジェクト(データアクセスオブジェクトのインタフェース) -このインタフェースは、実行するモデルオブジェクト上の標準的な操作を定義しています。
  • データアクセスは、エンティティクラス(データアクセスオブジェクトコンクリートクラス)オブジェクト-このクラスは、上記のインターフェースを実装しています。このクラスは、データ・ソースは、データベースすることができ、それは、XML、または他の記憶機構とすることができる、データソースからデータを取得する責任があります。
  • モデルオブジェクト/値オブジェクト(モデルオブジェクト/値オブジェクト) -オブジェクトに単純POJOで、データを取得するために、DAOクラスを使用して格納するための取得/設定メソッドが含まれています。

実現

我々は、学生オブジェクトモデルのオブジェクトまたは値オブジェクトを作成します。 StudentDaoデータアクセスオブジェクトのインタフェース。 StudentDaoImplエンティティ・クラスは、データ・アクセス・オブジェクト・インターフェースを達成することです。 利用のStudentDaoデータアクセスオブジェクトパターンの使用を実証するDaoPatternDemo、私たちのデモクラス。

データアクセスオブジェクトパターンUMLダイアグラム

ステップ1

値オブジェクトを作成します。

Student.java

パブリッククラス学生{
   プライベート文字列名;
   プライベートint型rollNo。

   学生(文字列名、int型rollNo){
      this.name =名;
      this.rollNo = rollNo。
   }

   公共の文字列のgetName(){
      名前を返します。
   }

   公共ボイドのsetName(文字列名){
      this.name =名;
   }

   公共int型getRollNo(){
      rollNoを返します。
   }

   公共ボイドsetRollNo(int型rollNo){
      this.rollNo = rollNo。
   }
}

ステップ2

データアクセスオブジェクトのインタフェースを作成します。

StudentDao.java

輸入java.util.Listに。

パブリックインターフェイスStudentDao {
   公共の一覧<学生> getAllStudents();
   公共学生getStudent(int型rollNo)。
   公共ボイドupdateStudent(学生学生)。
   公共ボイドdeleteStudent(学生学生)。
}

ステップ3

作成したエンティティクラスは、上記のインターフェースを実装しています。

StudentDaoImpl.java

輸入はjava.util.ArrayList;
輸入java.util.Listに。

パブリッククラスStudentDaoImplは{StudentDaoを実装します
	
   //リスト一覧<学生>学生としてのデータベースです。

   公共StudentDaoImpl(){
      学生=新しいのArrayList <学生>();
      学生STUDENT1 =新しい生徒( "ロバート"、0);
      学生student2 =新しい生徒( "ジョン"、1);
      students.add(STUDENT1)。
      students.add(student2)。		
   }
   @Override
   公共ボイドdeleteStudent(学生学生){
      students.remove(student.getRollNo());
      System.out.println( "学生:いいえロールはありません" + student.getRollNoを() 
         + "、データベースから削除されました");
   }

   //データベースからの学生のリストを取得@Override
   公共の一覧<学生> getAllStudents(){
      学生を返します。
   }

   @Override
   公共学生getStudent(rollNoをint型){
      students.get(rollNo)を返します。
   }

   @Override
   公共ボイドupdateStudent(学生学生){
      students.get(student.getRollNo())のsetName(student.getName());
      System.out.println( "学生:いいえロールはありません" + student.getRollNoを() 
         + "、データベースに更新");
   }
}

ステップ4

使用法のデータアクセスオブジェクトパターンの使用を実証するStudentDao。

CompositeEntityPatternDemo.java

パブリッククラスDaoPatternDemo {
   公共の静的な無効メイン(文字列[] args){
      StudentDao studentDao =新しいStudentDaoImpl();

      用//出力全学生(学生の学生:studentDao.getAllStudents()){
         System.out.println( "学生:[RollNo:"
            + Student.getRollNo()+ "、名:" + student.getName()+ "]");
      }


      //更新学生学生学生= studentDao.getAllStudents()(0)を取得;
      student.setName( "マイケル");
      studentDao.updateStudent(学生)。

      //取得する学生studentDao.getStudent(0);
      System.out.println( "学生:[RollNo:"
         + Student.getRollNo()+ "、名:" + student.getName()+ "]");		
   }
}

ステップ5

出力を確認します。

学生:[RollNo:0、名:Robert]
学生:[RollNo:1、名前:ジョン]
学生:データベースに更新、いいえ0をロールしません
学生:[RollNo:0、名:Michael]