文章内容

2026/1/21 19:37:49,作 者: 黄兵

DAO 层的作用

在软件开发中,DAO 是一个非常经典且标准的文件/层级命名。

1. 翻译与全称

  • 全称Data Access Object

  • 中文翻译数据访问对象

2. DAO 文件夹里装什么?

简单来说,dao 文件夹里的代码只做跟数据库打交道的事情。它是你的业务逻辑(Python 代码)和数据库(MySQL)之间的中间人

通常包含:

  • CRUD 操作:增(Create)、查(Retrieve)、改(Update)、删(Delete)的具体实现。

  • SQL 语句:项目里提出出来的 sql_queries.py

  • ORM 模型映射:如果你用 SQLAlchemy,某些直接操作 Model 的底层函数也可以放在这里。

3. 为什么要用 DAO?(通俗解释)

想象你在经营一家餐厅:

  • Database (数据库) = 厨房 (存放食材/数据的地方)。

  • Service (业务逻辑/你的 Poller) = 经理 (负责统筹、指挥、做决定)。

  • DAO = 传菜员/库管

如果没有 DAO:

经理(Service)想做一道菜,得亲自跑进厨房(Database),自己找锅、自己炒菜(写 SQL)、自己端盘子。经理会很累,而且一旦厨房装修(换数据库),经理还得重新学习怎么找锅。

有了 DAO:

经理(Service)只需要对 DAO 喊一声:“我要一份宫保鸡丁(我要查这个订单)!”

DAO 负责跑进厨房,熟练地找到食材、炒好菜,端给经理。

经理不需要知道勺子放在哪,也不需要知道菜是怎么炒的(不需要知道 SQL 怎么写),他只管拿结果。

4. 常见的目录结构对比

在一个标准的后端项目中,通常会有这样的层级:

  • controllers/views/接口层。负责接收用户请求(比如浏览器发来的 HTTP 请求)。

  • services/业务层。最复杂的逻辑都在这(比如你的轮询、判断超时、调用 API)。

  • dao/repository/持久层。只负责存取数据,不含复杂逻辑。

  • models/模型层。定义数据长什么样(比如 class CloudProductOrder(db.Model))。

总结

当你看到 dao 文件夹时,你的第一反应应该是:“哦,这里面全是操作数据库的代码,原本脏乱差的 SQL 语句都被藏到这里面了。”

分享到:

发表评论

评论列表