Java 中的 DAO(Data Access Object,数据访问对象)模式是一种经典的持久层设计模式,主要用于将业务处理逻辑与数据访问逻辑分离。下面从“适合的场景”和“不适合的场景”两个角度说明。
适合:
✅ DAO 可以统一封装:
当:
✅ DAO 提供统一接口:
UserDAO userDAO = new UserDAOImpl();
User user = userDAO.findById(1);
业务层不依赖具体 SQL 或 JDBC。
适合:
典型分层:
Controller
Service
DAO
Database
✅ DAO 明确职责边界,降低耦合。
DAO 适合集中处理:
例如:
try {
// JDBC 操作
} catch (SQLException e) {
throw new DaoException(e);
}
适合:
✅ 手写 DAO + JDBC 很清晰可控。
这些框架本身已包含 DAO 思想:
再写一层 DAO 容易“过度设计”。
例如:
✅ 直接 JDBC / Repository 更简单。
DAO 方法若设计过细:
此时更适合:
DAO + Service + Controller
Repository(MyBatis/JPA) + Service
@Repository
public class UserDaoImpl implements UserDao {
}
DAO 适合“业务逻辑复杂、需要清晰分层、强调可维护性和可扩展性的数据访问场景”。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。