Veri Erişim Nesne Modeli
Veri Erişim Nesne Modeli veya DAO modeli, düşük seviyeli veri erişim API'sini veya işlemleri yüksek seviyeli iş hizmetlerinden ayırmak için kullanılır. Veri Erişim Nesne Modeli katılımcıları aşağıdadır.
Data Access Object Interface - Bu arayüz, bir model nesne (ler) üzerinde gerçekleştirilecek standart işlemleri tanımlar.
Data Access Object concrete class- Bu sınıf yukarıdaki arayüzü uygular. Bu sınıf, veritabanı / xml veya başka herhangi bir depolama mekanizması olabilen bir veri kaynağından veri almaktan sorumludur.
Model Object or Value Object - Bu nesne, DAO sınıfı kullanılarak alınan verileri depolamak için get / set yöntemlerini içeren basit bir POJO'dur.
Uygulama
Model veya Değer Nesnesi olarak hareket eden bir Öğrenci nesnesi oluşturacağız . Student Dao , Veri Erişim Nesne Arayüzüdür . Student DaoImpl , Veri Erişim Nesne Arabirimi uygulayan somut bir sınıftır. DaoPatternDemo , bizim demo sınıf, kullanacağı StudentDao veri erişim nesnesi desen kullanımını göstermek için.
Aşama 1
Değer Nesnesi Yaratın.
Student.java
public class Student {
private String name;
private int rollNo;
Student(String name, int rollNo){
this.name = name;
this.rollNo = rollNo;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getRollNo() {
return rollNo;
}
public void setRollNo(int rollNo) {
this.rollNo = rollNo;
}
}
Adım 2
Veri Erişim Nesne Arayüzü oluşturun.
Student Dao.java
import java.util.List;
public interface StudentDao {
public List<Student> getAllStudents();
public Student getStudent(int rollNo);
public void updateStudent(Student student);
public void deleteStudent(Student student);
}
Aşama 3
Yukarıdaki arabirimi uygulayarak somut sınıf oluşturun.
Student DaoImpl.java
import java.util.ArrayList;
import java.util.List;
public class StudentDaoImpl implements StudentDao {
//list is working as a database
List<Student> students;
public StudentDaoImpl(){
students = new ArrayList<Student>();
Student student1 = new Student("Robert",0);
Student student2 = new Student("John",1);
students.add(student1);
students.add(student2);
}
@Override
public void deleteStudent(Student student) {
students.remove(student.getRollNo());
System.out.println("Student: Roll No " + student.getRollNo() + ", deleted from database");
}
//retrive list of students from the database
@Override
public List<Student> getAllStudents() {
return students;
}
@Override
public Student getStudent(int rollNo) {
return students.get(rollNo);
}
@Override
public void updateStudent(Student student) {
students.get(student.getRollNo()).setName(student.getName());
System.out.println("Student: Roll No " + student.getRollNo() + ", updated in the database");
}
}
4. adım
Veri Erişim Nesnesi kalıp kullanımını göstermek için Student Dao'yu kullanın .
DaoPatternDemo.java
public class DaoPatternDemo {
public static void main(String[] args) {
StudentDao studentDao = new StudentDaoImpl();
//print all students
for (Student student : studentDao.getAllStudents()) {
System.out.println("Student: [RollNo : " + student.getRollNo() + ", Name : " + student.getName() + " ]");
}
//update student
Student student =studentDao.getAllStudents().get(0);
student.setName("Michael");
studentDao.updateStudent(student);
//get the student
studentDao.getStudent(0);
System.out.println("Student: [RollNo : " + student.getRollNo() + ", Name : " + student.getName() + " ]");
}
}
Adım 5
Çıkışı doğrulayın.
Student: [RollNo : 0, Name : Robert ]
Student: [RollNo : 1, Name : John ]
Student: Roll No 0, updated in the database
Student: [RollNo : 0, Name : Michael ]