视频1 视频21 视频41 视频61 视频文章1 视频文章21 视频文章41 视频文章61 推荐1 推荐3 推荐5 推荐7 推荐9 推荐11 推荐13 推荐15 推荐17 推荐19 推荐21 推荐23 推荐25 推荐27 推荐29 推荐31 推荐33 推荐35 推荐37 推荐39 推荐41 推荐43 推荐45 推荐47 推荐49 关键词1 关键词101 关键词201 关键词301 关键词401 关键词501 关键词601 关键词701 关键词801 关键词901 关键词1001 关键词1101 关键词1201 关键词1301 关键词1401 关键词1501 关键词1601 关键词1701 关键词1801 关键词1901 视频扩展1 视频扩展6 视频扩展11 视频扩展16 文章1 文章201 文章401 文章601 文章801 文章1001 资讯1 资讯501 资讯1001 资讯1501 标签1 标签501 标签1001 关键词1 关键词501 关键词1001 关键词1501 专题2001
DAO(DataAccessObjectPattern)
2020-11-09 07:21:07 责编:小采
文档


总是看到什么什么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 database
Student: [RollNo : 0, Name : Michael ]


O啦~~~

转帖请保留出处:http://blog.csdn.net/u011638883/article/details/13093701

谢谢!!

下载本文
显示全文
专题