Java의 DAO 클래스
데이터 액세스 객체 흔히 알려진 패턴 칼 패턴은 높은 수준의 비즈니스 서비스와 낮은 수준의 데이터 액세스 API 또는 작업을 구분하는 데 사용됩니다. 데이터 액세스 개체 패턴의 구성원은 다음과 같습니다.
데이터 액세스 개체 인터페이스: 데이터 액세스 객체 인터페이스는 모델 객체에 대해 수행되는 일반적인 작업을 지정합니다.
구체적인 데이터 액세스 객체 클래스: 이 클래스는 앞서 언급한 인터페이스를 구현합니다. 이 클래스는 데이터베이스, XML 또는 다른 유형의 저장 시스템일 수 있는 데이터 소스에서 데이터를 얻는 일을 담당합니다.
모델 또는 값 개체: 이 객체는 DAO 클래스를 사용하여 얻은 데이터를 저장하기 위한 get/set 메소드가 있는 간단한 POJO입니다.
구현
학생 개체가 생성되어 모델 및 값 개체로 사용됩니다.
데이터 접근 객체 인터페이스는 StudentDao라고 불립니다.
구체적인 클래스 StudentDaoImpl은 데이터 액세스 객체 인터페이스를 구현합니다. StudentDao는 데이터 액세스 개체 패턴을 사용하는 방법을 보여주기 위해 데모 클래스인 DaoPatternDemo에서 사용됩니다.
1 단계:
값 개체 생성.
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; } } 2 단계:
데이터 액세스 개체 인터페이스 생성.
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); } 3단계:
앞서 언급한 인터페이스를 구현하는 클래스를 생성합니다.
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'); } } 4단계:
StudentDao를 활용하여 데이터 액세스 개체 패턴을 사용하는 방법을 보여줍니다.
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() + ' ]'); } } 5단계:
결과를 확인하세요.