Objekt pristupa podacima obrasci, često poznati kao NOŽ obrasci, koriste se za odvajanje poslovnih usluga visoke razine od podataka niske razine koji pristupaju API-jima ili radnjama. Članovi obrasca objekta pristupa podacima navedeni su u nastavku.
supw
Sučelje objekta pristupa podacima: Sučelje objekta pristupa podacima specificira uobičajene operacije koje se trebaju izvršiti na objektu(ima) modela.
Konkretna klasa objekta pristupa podacima: Ova klasa implementira gore spomenuto sučelje. Ova klasa je zadužena za dobivanje podataka iz izvora podataka, koji može biti baza podataka, XML ili neka druga vrsta sustava za pohranu.
Model ili objekt vrijednosti: Ovaj objekt je jednostavan POJO s get/set metodama za pohranu podataka dobivenih korištenjem DAO klase.
Provedba
Izradit će se studentski objekt koji će se koristiti kao model i vrijednosni objekt.
Data Access Object Interface naziva se StudentDao.
Konkretna klasa StudentDaoImpl implementira Data Access Object Interface. StudentDao će koristiti DaoPatternDemo, naša demo klasa, da pokaže kako koristiti obrazac Data Access Object.
Korak 1:
Stvaranje vrijednosnog objekta.
S.java
public class S { private String n; private int r; S(String n, int r){ this.n = n; this.r = r; } public String getName() { return n; } public void setName(String n) { this.n = n; } public int getRollNo() { return r; } public void setRollNo(int r) { this.r = r; } }
Korak 2:
obj u Javi
Stvaranje sučelja objekta pristupa podacima.
SD.java
import java.util.List; public interface SD { public List getAllStudents(); public S getStudent(int r); public void updateStudent(S s); public void deleteStudent(S s); }
Korak 3:
Konstruirajte klasu koja implementira gore spomenuto sučelje.
SDI.java
import java.util.ArrayList; import java.util.List; public class SDI implements SD { // list is working as the database List ss; public SDI(){ ss = new ArrayList(); S s1 = new S('Sonoo',0); S s2 = new S('Jaiswal',1); ss.add(s1); ss.add(s2); } @Override public void deleteStudent(S s) { students.remove(s.getRollNo()); System.out.println(' Student: Roll No ' + student.getRollNo() + ', has been deleted from the database'); } // traversing list of students from the database @Override public List getAllStudents() { return ss; } @Override public S getStudent(int r) { return ss.get(r); } @Override public void updateStudent(S s) { ss.get(s.getRollNo()).setName(s.getName()); System.out.println(' Student: Roll No ' + student.getRollNo() + ', has been updated in the database'); } }
Korak 4:
bash podijeli niz prema razdjelniku
Upotrijebite StudentDao kako biste ilustrirali kako koristiti obrazac Data Access Object.
DPDemo.java
public class DPDemo { public static void main(String[] args) { SD sD = new SDI(); // print all the students for (S s : sD.getAllStudents()) { System.out.println('Student: [RollNo : ' + s.getRollNo() + ', Name : ' + s.getName() + ' ]'); } // update student S s =sD.getAllStudents().get(0); s.setName('JavaTpoint'); sD.updateStudent(s); //get the student sD.getStudent(0); System.out.println('Student: [RollNo : ' + s.getRollNo() + ', Name : ' + s.getName() + ' ]'); } }
Korak 5:
Provjerite rezultate.