总是看到什么什么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
谢谢!!
   
 
   