您好,欢迎访问一九零五行业门户网

DAO(Data Access Object Pattern)

总是看到什么什么dao的,但是dao到底是什么?dao是一种设计模式,全称data access object patter。下面翻译一篇小文章,以作解释。 data access object pattern 或者dao 模式被用来分离低层次数据访问和高级业务逻辑操作。 下面是一些dao模式中包含的元素。
总是看到什么什么dao的,但是dao到底是什么?dao是一种设计模式,全称data access object patter。下面翻译一篇小文章,以作解释。
data access object pattern 或者dao 模式被用来分离低层次数据访问和高级业务逻辑操作。下面是一些dao模式中包含的元素。
· data access object interface - 定义了一个model类上标准的操作方法的接口。
· data access object concrete class - 实现了上面接口的类。这个类负责从数据存储区(数据库、xml)中取得数据。
· model object or value object - 这是一个简单地pojo(plain old java object)包含了getter和setter方法。由dao类进行存取。
实现
创建一个student类代表了model或value对象。studentdao是一个dao接口。studentdaoimpl是一个实现studentdao的类。见下图:
step 1.
创建model类,student
package com.wly.dp.dao;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.
创建一个dao接口,studentdao
package com.wly.dp.dao;import java.util.list;public interface studentdao { public list getallstudents(); public student getstudent(int rollno); public void updatestudent(student student); public void deletestudent(student student);}
step 3.创建一个实现dao接口的类,studentdaoimpl
package com.wly.dp.dao;import java.util.arraylist;import java.util.list;public class studentdaoimpl implements studentdao{ list students; //模拟数据库 public studentdaoimpl() { students = new arraylist(); student student1 = new student(robert,0); student student2 = new student(john,1); students.add(student1); students.add(student2); } @override public list 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 the database); } @override public void deletestudent(student student) { students.remove(student.getrollno()); system.out.println(student: roll no + student.getrollno() +, deleted from database); }}
step 4.测试类,test
package com.wly.dp.dao;public class test { public static void main(string[] args) { studentdao studentdao = new studentdaoimpl(); // 输出所有student for (student student : studentdao.getallstudents()) { system.out.println(student: [rollno : + student.getrollno() + , name : + student.getname() + ]); } // 更新一个student student student = studentdao.getallstudents().get(0); student.setname(michael); studentdao.updatestudent(student); // 得到更新后的student studentdao.getstudent(0); system.out.println(student: [rollno : + student.getrollno() + , name : + student.getname() + ]); }}
step 5.验证输出
student: [rollno : 0, name : robert ]student: [rollno : 1, name : john ]student: roll no 0, updated in the databasestudent: [rollno : 0, name : michael ]
o啦~~~转帖请保留出处:http://blog.csdn.net/u011638883/article/details/13093701
谢谢!!
其它类似信息

推荐信息