数据访问层
[[DAO]] 模式主要是为了 :-> 把底层的数据访问操作和高层的业务逻辑隔离开。
- 它把 所有和特定数据源(如数据库)交互的具体逻辑 封装在 DAO 类里。
- 在一个图书管理系统中,有一个 Book 类表示图书信息。#card
为了对图书数据进行操作,我们可以创建一个 BookDAO 接口,定义 addBook、 deleteBook、getBookById 等方法。
然后创建一个 BookDAOImpl 类来实现这个接口,
在这个类 中使用 JDBC(JavaDatabaseConnectivity)或者其他数据库访问技术来完成具体的数据库操作。
DTO 是一种 用于在不同进程或者网络之间传输数据的对象容器 ,它里面只包含数据,不 包含任何业务逻辑。
- 可以把它想象成一个快递包裹,里面装着要传递的物品(数据),但包裹 本身不具备任何处理物品的能力。#card
比如,前端页面需要显示商品的信息。
后端从数据库中查询 出商品的详细信息后, 可能包含很多不需要传递给前端的字段。
这时, 我们可以创建一个 ProductDTO 类,只包含前端需要的字段,如商品名称、价格、图片地址等,然后把这些数据 封装到 ProductDTO 对象中传递给前端。
常用模式
在线访问模式
- 核心思想 :-> 应用程序与数据库保持持续连接,实时 执行数据操作。
- 特点 :-> 实时性强,直接操作数据库,但依赖 网络和连接稳定性。
DAO(数据访问对象)
- 核心思想 :-> 将数据访问逻辑与业务逻辑分离,通过 接口封装数据库操作。
- 特点 :-> 解耦数据层与业务层,支持不同数据 库切换,提高代码复用性。
DTO(数据传输对象)
- 核心思想 :-> 用于跨进程/网络传输数据的轻量级容 器,无业务逻辑。
- 特点 :-> 减少网络传输次数,可序列化,独立 于数据源结构。
离线数据模式
- 核心思想 :-> 数据从数据源获取后,按预定义结构存 储在本地,与数据源断开连接。
- 特点 :-> 离线处理数据, 支持 XML/JSON 格 式转换,不依赖数据库连接。
对象/关系映射(ORM)
- 核心思想 :-> ORM 在关系型数据库和对象之间建立 映射,应用程序可以像操作对象一样操 作数据库,它可以大幅减少数据访问层 的开发工作,专注于实现业务逻辑。
- 特点 :-> 面向对象编程,自动生成 SQL, 支持 复杂查询优化。
- 落地 :-> [[Hibernate]] 可以自动完成从 Java 对象到数据库表的映射