Java DAO(Data Access Object,数据访问对象) 是 Java 中一种常用的设计模式,用来把业务逻辑层和数据库访问层分离开,使代码更清晰、更易维护。
DAO(Data Access Object) 是一组专门负责操作数据库的类和接口。
它的核心思想是:
把“怎么访问数据库”隐藏起来,业务代码只关心“要什么数据”,不关心“怎么查”。
没有 DAO 时,常见问题是:
// 业务代码里直接写 SQL
Connection conn = ...
Statement stmt = ...
ResultSet rs = stmt.executeQuery("SELECT * FROM user WHERE id = 1");
问题:
✅ 使用 DAO 后:
一个典型的 DAO 包含:
public class User {
private int id;
private String name;
// getter / setter
}
public interface UserDao {
User findById(int id);
void save(User user);
void delete(int id);
}
public class UserDaoImpl implements UserDao {
public User findById(int id) {
// JDBC / MyBatis / JPA 操作
}
public void save(User user) {
// 插入数据库
}
}
UserDao userDao = new UserDaoImpl();
User user = userDao.findById(1);
| 技术 | 说明 |
|---|---|
| JDBC | 最基础,手写 SQL |
| MyBatis | 半自动 ORM,SQL 可控 |
| Hibernate / JPA | 全自动 ORM |
| Spring Data JPA | 几乎不用写 DAO 实现 |
✅ 解耦(业务 ≠ 数据库)
✅ 可维护性强
✅ 易测试(可用 Mock DAO)
✅ 易于替换数据库
DAO 就是“专门和数据库打交道的对象”,让 Java 程序更干净、更规范。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。