Pola Objek Akses Data

Pola Objek Akses Data atau pola DAO digunakan untuk memisahkan API pengakses data tingkat rendah atau operasi dari layanan bisnis tingkat tinggi. Berikut adalah peserta dalam Pola Objek Akses Data.

  • Data Access Object Interface - Antarmuka ini mendefinisikan operasi standar yang akan dilakukan pada objek model.

  • Data Access Object concrete class- Kelas ini mengimplementasikan antarmuka di atas. Kelas ini bertanggung jawab untuk mendapatkan data dari sumber data yang dapat berupa database / xml atau mekanisme penyimpanan lainnya.

  • Model Object or Value Object - Objek ini adalah POJO sederhana yang berisi metode get / set untuk menyimpan data yang diambil menggunakan kelas DAO.

Penerapan

Kami akan membuat objek Siswa yang bertindak sebagai Model atau Objek Nilai. Student Dao adalah Antarmuka Objek Akses Data. StudentDaoImpl adalah kelas beton yang mengimplementasikan Antarmuka Objek Akses Data. DaoPatternDemo , kelas demo kami, akan menggunakan StudentDao untuk mendemonstrasikan penggunaan pola Objek Akses Data.

Langkah 1

Buat Objek Nilai.

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;
   }
}

Langkah 2

Buat Antarmuka Objek Akses Data.

StudentDao.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);
}

LANGKAH 3

Buat kelas beton yang menerapkan antarmuka di atas.

StudentDaoImpl.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");
   }
}

LANGKAH 4

Gunakan StudentDao untuk mendemonstrasikan penggunaan pola Objek Akses Data.

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() + " ]");		
   }
}

LANGKAH 5

Verifikasi hasilnya.

Student: [RollNo : 0, Name : Robert ]
Student: [RollNo : 1, Name : John ]
Student: Roll No 0, updated in the database
Student: [RollNo : 0, Name : Michael ]