Latest web development tutorials

데이터 액세스 개체 패턴

데이터 액세스 객체 모델 (객체 데이터 액세스 패턴) 또는 로우 레벨의 데이터 액세스 API에 대한 DAO 패턴 또는 고급 비즈니스 서비스의 동작으로부터 분리된다. 다음은 데이터 액세스 개체 패턴의 참가자입니다.

  • 인터페이스 데이터 액세스 개체 (데이터 액세스 개체 인터페이스) -이 인터페이스는 모델 객체에 대한 표준 작업을 정의하고 실행합니다.
  • 데이터 액세스 엔티티 클래스 (데이터 액세스 개체 콘크리트 클래스) 개체 -이 클래스는 위의 인터페이스를 구현합니다.이 클래스는 데이터 소스로부터 데이터를 취득하기위한 책임이 데이터 소스는 데이터베이스가 될 수 있고, 그것은 XML 또는 다른 저장 장치 일 수있다.
  • 모델 개체 / 값 개체 (모델 개체 / 값 개체) - 목적은 단순한 POJO입니다 / 데이터를 검색하는 DAO 클래스를 사용하여 저장하는 일련의 방법을 얻을 포함되어 있습니다.

실현

우리는학생 객체모델 객체 또는 값 객체를 생성합니다.StudentDao데이터 액세스 객체 인터페이스를 제공합니다.StudentDaoImpl 엔티티클래스는 데이터 액세스 오브젝트 인터페이스를 달성하는 것이다.DaoPatternDemo,우리의 데모 클래스는 사용의StudentDao데이터 액세스 개체 패턴의 사용을 설명합니다.

데이터 액세스 개체 패턴 UML 다이어그램

1 단계

값 개체를 만듭니다.

Student.java

공용 클래스 학생 {
   개인 문자열 이름;
   개인 INT rollNo;

   학생 {(문자열 이름, rollNo을 INT)
      this.name = 이름;
      this.rollNo = rollNo;
   }

   공공 문자열 getName () {
      이름을 반환;
   }

   공공 무효에서는 setName (문자열 이름) {
      this.name = 이름;
   }

   공공 INT getRollNo () {
      rollNo를 반환;
   }

   공공 무효의 setRollNo (rollNo를 INT) {
      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 이름 : 로버트]
학생 : [RollNo : 1, 이름 : 존]
학생 : 데이터베이스에 업데이트 없음 0, 롤 없다
학생 : [RollNo : 0 이름 : 마이클]