0% found this document useful (0 votes)
77 views

Data Access Object Pattern

The Data Access Object (DAO) pattern separates the application's data access logic from the business logic. It provides a way to access and manipulate data in a database in an object-oriented way. The key participants are: 1. A DAO interface that defines the data access operations. 2. A concrete DAO class that implements the interface and interacts with the database. 3. A model or value object that represents the data and acts as a data container. The DAO pattern is demonstrated by creating Student model objects, a StudentDAO interface, a StudentDAOImpl class implementing the interface, and a DaoPatternDemo class that uses the DAO to access student data.

Uploaded by

maddalena pozzi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
77 views

Data Access Object Pattern

The Data Access Object (DAO) pattern separates the application's data access logic from the business logic. It provides a way to access and manipulate data in a database in an object-oriented way. The key participants are: 1. A DAO interface that defines the data access operations. 2. A concrete DAO class that implements the interface and interacts with the database. 3. A model or value object that represents the data and acts as a data container. The DAO pattern is demonstrated by creating Student model objects, a StudentDAO interface, a StudentDAOImpl class implementing the interface, and a DaoPatternDemo class that uses the DAO to access student data.

Uploaded by

maddalena pozzi
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 4

Data Access Object Pattern

Data Access Object Pattern or DAO pattern is used to separate low level data accessing API or
operations from high level business services. Following are the participants in Data Access Object
Pattern.

Data Access Object Interface - This interface defines the standard operations to be
performed on a model object(s).

Data Access Object concrete class - This class implements above interface. This class is
responsible to get data from a data source which can be database / xml or any other storage
mechanism.
Model Object or Value Object - This object is simple POJO containing get/set methods to
store data retrieved using DAO class.

Implementation

We are going to create a Student object acting as a Model or Value Object.StudentDao is Data Access
Object Interface.StudentDaoImpl is concrete class implementing Data Access Object Interface.
DaoPatternDemo, our demo class, will use StudentDao to demonstrate the use of Data Access Object
pattern.

Step 1

Create Value Object.


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

Step 2

Create Data Access Object Interface.


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

Step 3

Create concrete class implementing above interface.


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
}

//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 th
}
}

Step 4
Use the StudentDao to demonstrate Data Access Object pattern usage.

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 : "
}

//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 : " +
}
}

Step 5
Verify the output.

Student: [RollNo : 0, Name : Robert ]


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

You might also like