DAO模式

1.将程序中的数据在瞬时状态和持久状态间转换的机制即为数据持久化。

2.业务代码和数据访问代码耦合

  • 可读性差
  • 不利于后期修改和维护
  • 不利于代码复用

采用面向接口编程,可以降低代码间的耦合性

3.非常流行的数据访问模式——DAO模式

  • Data Access Object(数据存取对象)
  • 位于业务逻辑和持久化数据之间
  • 实现对持久化数据的访问

DAO起着转换器的作用,把实体类转换为数据库中的记录

4.DAO模式的组成部分

  • DAO接口
  • DAO实现类
  • 实体类
  • 数据库连接和关闭工具类

5.properties配置文件

Java中的配置文件常为properties文件

  • 后缀为.properties
  • 格式是“键=值”格式
  • 使用“#”来注释

6.读取配置文件

Java中提供了Properties类来读取配置文件

在这里插入图片描述

6.使用实体类传递数据

数据访问代码和业务逻辑代码之间通过实体类来传输数据

实体类特征

  • 属性一般使用private修饰
  • 提供public修饰的getter/setter方法
  • 实体类提供无参构造方法,根据业务提供有参构造
  • 实现java.io.Serializable接口,支持序列化机制

7.DAO模式的优势

  • 隔离了数据访问代码和业务逻辑代码
  • 隔离了不同数据库实现
DAO(Data Access Object,数据访问对象)模式是一种常用的设计模式,主要用于封装对数据库或其他持久化存储机制的操作。通过引入DAO层,应用程序的业务逻辑与数据访问逻辑得以分离,提高了程序的可维护性和灵活性。 ### DAO 模式的主要特点: 1. **职责单一**:DAO 类负责所有与特定实体相关的 CRUD (Create, Read, Update, Delete) 操作,并将这些操作从其他应用组件中隔离出来。 2. **统一接口**:为不同的数据源提供一致性的访问接口,无论底层的数据存储是基于文件系统、SQL 数据库还是 NoSQL 等形式。 3. **事务管理透明化**:对于需要跨多个资源协调工作的场景,如分布式系统的两阶段提交协议,DAO 可以让客户端不必关心具体的事务控制细节。 4. **增强复用性及测试便利度**:由于其独立于业务规则的存在,因此可以更方便地进行单元测试并促进代码重用。 #### 实现步骤 - 定义 `Dao` 接口用于声明通用方法; - 根据需求创建相应的实现类 (`UserDaoImpl`, `OrderDaoImpl`) 来完成具体功能; - 使用工厂模式或依赖注入的方式获取 Dao 对象实例; - 在 Service 层调用对应的 Dao 方法来进行增删改查等动作; ```java // User.java - Entity Class public class User { private Long id; private String name; // Getters and Setters... } // UserDao Interface interface UserDao { void add(User user); List<User> findAll(); Optional<User> findById(Long userId); boolean update(User updatedUser); int deleteById(Long userId); } // UserDao Implementation with JDBC or ORM framework like Hibernate etc. class UserDaoJdbc implements UserDao{ @Override public void add(User user){/*...*/} @Override public List<User> findAll(){/*...*/} @Override public Optional<User> findById(Long userId){/*...*/} @Override public boolean update(User updatedUser){/*...*/} @Override public int deleteById(Long userId){/*...*/} } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值