/*** 3. 创建实现了StudentDao接口的实体类。* @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 来演示数据访问对象模式的用法。
/*** 4. 使用 StudentDao 来演示数据访问对象模式的用法。* @author mazaiting*/
public class Client {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()+" ]"); }
}
打印结果
Student: [RollNo : 0, Name : Rebert ]
Student: [RollNo : 1, Name : John ]
Student: Roll No 0, updated in the database
Student: [RollNo : 0, Name : Michael ]