温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

什么是java DAO数据访问对象

发布时间:2026-10-05 14:25:08 来源:亿速云 阅读:93 作者:小樊 栏目:编程语言

Java DAO(Data Access Object,数据访问对象) 是 Java 中一种常用的设计模式,用来把业务逻辑层和数据库访问层分离开,使代码更清晰、更易维护。


一、DAO 是什么?

DAO(Data Access Object) 是一组专门负责操作数据库的类和接口。

它的核心思想是:

把“怎么访问数据库”隐藏起来,业务代码只关心“要什么数据”,不关心“怎么查”。


二、为什么要用 DAO?

没有 DAO 时,常见问题是:

// 业务代码里直接写 SQL
Connection conn = ...
Statement stmt = ...
ResultSet rs = stmt.executeQuery("SELECT * FROM user WHERE id = 1");

问题:

  • 业务代码和 SQL 混在一起
  • 难以维护
  • 难以测试
  • 数据库一变,全项目改

✅ 使用 DAO 后:

  • 业务层只调用方法
  • SQL 集中在 DAO 中
  • 结构清晰、易扩展

三、DAO 的基本结构

一个典型的 DAO 包含:

1️⃣ 实体类(Model / Entity)

public class User {
    private int id;
    private String name;

    // getter / setter
}

2️⃣ DAO 接口(定义操作)

public interface UserDao {
    User findById(int id);
    void save(User user);
    void delete(int id);
}

3️⃣ DAO 实现类(真正访问数据库)

public class UserDaoImpl implements UserDao {

    public User findById(int id) {
        // JDBC / MyBatis / JPA 操作
    }

    public void save(User user) {
        // 插入数据库
    }
}

4️⃣ 业务层调用 DAO

UserDao userDao = new UserDaoImpl();
User user = userDao.findById(1);

四、DAO 的常见实现方式

技术 说明
JDBC 最基础,手写 SQL
MyBatis 半自动 ORM,SQL 可控
Hibernate / JPA 全自动 ORM
Spring Data JPA 几乎不用写 DAO 实现

五、DAO 的优点

✅ 解耦(业务 ≠ 数据库)
✅ 可维护性强
✅ 易测试(可用 Mock DAO)
✅ 易于替换数据库


六、简单一句话总结

DAO 就是“专门和数据库打交道的对象”,让 Java 程序更干净、更规范。

如果你愿意,我也可以:

  • 给你一个 完整 DAO 示例
  • 对比 DAO vs Service
  • 讲 Spring 中 DAO 的写法
向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手