文章内容
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 语句都被藏到这里面了。”
评论列表