/*** 3. 創(chuàng)建實(shí)現(xiàn)了StudentDao接口的實(shí)體類。* @author mazaiting*/
public class StudentDaoImpl implements StudentDao{List<Student> students;public StudentDaoImpl(){students = new ArrayList<Student>();Student student1 = new Student("Rebert", 0);Student student2 = new Student("John", 1);students.add(student1);students.add(student2);}public List<Student> getAllStudents() {return students;}public Student getStudent(int rollNo) {return students.get(rollNo);}public void updateStudent(Student student) {students.get(student.getRollNo()).setName(student.getName());System.out.println("Student: Roll No " + student.getRollNo() +", updated in the database");}public void deleteStudent(Student student) {students.remove(student.getRollNo());System.out.println("Student: Roll No " + student.getRollNo() +", deleted from database");}}
使用 StudentDao 來演示數(shù)據(jù)訪問對象模式的用法。
/*** 4. 使用 StudentDao 來演示數(shù)據(jù)訪問對象模式的用法。* @author mazaiting*/
public class Client {public static void main(String[] args) {StudentDao studentDao = new StudentDaoImpl();// 輸出所有的學(xué)生for (Student student : studentDao.getAllStudents()) {System.out.println("Student: [RollNo : "+student.getRollNo()+", Name : "+student.getName()+" ]");}// 更新學(xué)生Student student = studentDao.getAllStudents().get(0);student.setName("Michael");studentDao.updateStudent(student);// 獲取學(xué)生studentDao.getStudent(0);System.out.println("Student: [RollNo : "+student.getRollNo()+", Name : "+student.getName()+" ]"); }
}
打印結(jié)果
Student: [RollNo : 0, Name : Rebert ]
Student: [RollNo : 1, Name : John ]
Student: Roll No 0, updated in the database
Student: [RollNo : 0, Name : Michael ]