导语
最近在做对数据库进行操作的Java编程,为了追求更好的封装性,实现代码的低耦合高复用,我了解了数据访问对象模式(Data Access Object Pattern),即DAO模式。
同时我对之前写的代码进行了复盘与改进。这篇就主要介绍一下什么是DAO模式,以及示例用法。
DAO模式
DAO模式是为了将低级的数据访问API从高级的业务服务中分离出来,也是为了实现低耦合、高复用。
DAO模式属于J2EE设计模式的一种,特别关注表示层。
DAO模式主要有三个参与者:
- 数据访问对象接口: 定义在一个模型对象上要执行的标准操作
- 数据访问对象实体类:实现数据访问对象接口,负责从数据库等存储机制中获取数据
- 模型对象/数值对象:用来存储获取到的数据的类对象
以下是DAO模式的UML图:
该图中:
StudentDao担当的是数据访问接口对象的角色,规定了对student类型的数据要进行那些操作;
StudentDaoImpl担当的是数据访问对象实体类的角色,实现了StudentDao接口,也就是具体实现了如何从数据库获取数据,来进行这些增删改查的操作;
Student担当的是模型对象的角色,用来存储获取到的student类型的数据,利用它作为中介来完成对数据库的实际操作。
DAO模式的实现
我们根据方才展示的UML逻辑来实现DAO模式。
以我对Person的数据库的操作为例:
这四个.java文件恰好实现了对person类数据操作的DAO模式。
首先是实体类Person,主要包含属性和getter/setter方法:
package com.web.xiaohan.entity;
import java.io.Serializable;
public class Person implements Serializable{
private String username;
private String name;
private int age = 0;
private String telenum;
public String getUsername() {
return username;
}
public String getName() {
return name;
}
public int getAge() {
return age;
}
public String getTelenum() {
return telenum;
}
public void setUsername(String username) {
this.username = username;