数据访问层

[[DAO]] 模式主要是为了 :-> 把底层的数据访问操作和高层的业务逻辑隔离开。

  • 它把 所有和特定数据源(如数据库)交互的具体逻辑 封装在 DAO 类里。
  • 在一个图书管理系统中,有一个 Book 类表示图书信息。#card
    • 为了对图书数据进行操作,我们可以创建一个 BookDAO 接口,定义 addBook、 deleteBook、getBookById 等方法。

    • 然后创建一个 BookDAOImpl 类来实现这个接口,

    • 在这个类 中使用 JDBC(JavaDatabaseConnectivity)或者其他数据库访问技术来完成具体的数据库操作。

DTO 是一种 用于在不同进程或者网络之间传输数据的对象容器 ,它里面只包含数据,不 包含任何业务逻辑。

  • 可以把它想象成一个快递包裹,里面装着要传递的物品(数据),但包裹 本身不具备任何处理物品的能力。#card
    • 比如,前端页面需要显示商品的信息。

    • 后端从数据库中查询 出商品的详细信息后, 可能包含很多不需要传递给前端的字段。

    • 这时, 我们可以创建一个 ProductDTO 类,只包含前端需要的字段,如商品名称、价格、图片地址等,然后把这些数据 封装到 ProductDTO 对象中传递给前端。

常用模式

  • 在线访问模式

    • 核心思想 :-> 应用程序与数据库保持持续连接,实时 执行数据操作。
    • 特点 :-> 实时性强,直接操作数据库,但依赖 网络和连接稳定性。
  • DAO(数据访问对象)

    • 核心思想 :-> 将数据访问逻辑与业务逻辑分离,通过 接口封装数据库操作。
    • 特点 :-> 解耦数据层与业务层,支持不同数据 库切换,提高代码复用性。
  • DTO(数据传输对象)

    • 核心思想 :-> 用于跨进程/网络传输数据的轻量级容 器,无业务逻辑。
    • 特点 :-> 减少网络传输次数,可序列化,独立 于数据源结构。
  • 离线数据模式

    • 核心思想 :-> 数据从数据源获取后,按预定义结构存 储在本地,与数据源断开连接。
    • 特点 :-> 离线处理数据, 支持 XML/JSON 格 式转换,不依赖数据库连接。
  • 对象/关系映射(ORM)

    • 核心思想 :-> ORM 在关系型数据库和对象之间建立 映射,应用程序可以像操作对象一样操 作数据库,它可以大幅减少数据访问层 的开发工作,专注于实现业务逻辑。
    • 特点 :-> 面向对象编程,自动生成 SQL, 支持 复杂查询优化。
    • 落地 :-> [[Hibernate]] 可以自动完成从 Java 对象到数据库表的映射
作者

Ryen Xiang

发布于

2026-01-31

更新于

2025-10-13

许可协议


网络回响

评论