corak objek capaian data
Corak Objek Akses Data atau corak DAO digunakan untuk memisahkan API atau operasi akses data peringkat rendah daripada perkhidmatan perniagaan peringkat tinggi. Berikut ialah peserta corak Objek Akses Data.
Antara Muka Objek Akses Data - Antara muka ini mentakrifkan operasi standard yang akan dilakukan pada objek model.
Kelas konkrit Objek Akses Data - Kelas ini melaksanakan antara muka di atas. Kelas ini bertanggungjawab untuk mendapatkan data daripada sumber data, yang boleh menjadi pangkalan data, xml atau mekanisme storan lain.
Objek Model/Objek Nilai - Objek ini ialah POJO ringkas yang mengandungi kaedah get/set untuk menyimpan data menggunakan data Diperoleh kelas DAO.
Pelaksanaan
Kami akan mencipta objek Pelajar yang sama ada objek model atau objek berangka. StudentDao ialah antara muka objek akses data. StudentDaoImpl ialah kelas entiti yang melaksanakan antara muka objek akses data. DaoPatternDemo, kelas demo kami menggunakan StudentDao untuk menunjukkan penggunaan corak objek akses data.
Langkah 1
Buat objek berangka.
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 antara muka 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 entiti yang melaksanakan antara muka di atas.
StudentDaoImpl.java
import java.util.ArrayList; import java.util.List; public class StudentDaoImpl implements StudentDao { //列表是当作一个数据库 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"); } //从数据库中检索学生名单 @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 menunjukkan penggunaan corak objek akses data.
CompositeEntityPatternDemo.java
public class DaoPatternDemo { public static void main(String[] args) { StudentDao studentDao = new StudentDaoImpl(); //输出所有的学生 for (Student student : studentDao.getAllStudents()) { System.out.println("Student: [RollNo : " +student.getRollNo()+", Name : "+student.getName()+" ]"); } //更新学生 Student student =studentDao.getAllStudents().get(0); student.setName("Michael"); studentDao.updateStudent(student); //获取学生 studentDao.getStudent(0); System.out.println("Student: [RollNo : " +student.getRollNo()+", Name : "+student.getName()+" ]"); } }
Langkah 5
Sahkan output.
rreeee