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 ]