Dao là gì trong java

Một một trong những khía cạnh đặc biệt quan trọng của lớp nghiệp vụ (business layer) là lớp truy cập dữ liệu (data access layer) để kết nối những dịch vụ (service) với cơ sở dữ liệu (database). Việc truy cập dữ liệu tùy trực thuộc vào nguồn dữ liệu, loại tàng trữ như database, text file, xml file, json file, …Thậm chí nó khác với cách xúc tiến của nó, ví dụ: cú pháp truy vấn vấn SQL khác biệt giữa MySQL, SQL Server, Oracle, … Với ước muốn sẽ không tồn tại gì khác hoàn toàn khi truy vấn cơ sở dữ liệu quan hệ, đối chiếu xml file hay ngẫu nhiên nguồn tài liệu nào khác, chúng ta có thể áp dụng mẫu thiết kế đối tượng người sử dụng truy cập tài liệu (Data Access Object PatternDAO Pattern).

Bạn đang xem: Dao là gì trong java

Đang xem: Data access object là gì

Nội dung

2 cài đặt DAO Pattern như thế nào?

DAO Pattern là gì?

Data Access Object (DAO) Pattern là một trong số những Pattern nằm trong nhóm kết cấu (Structural Pattern). Mẫu thiết kế DAO được thực hiện để phân bóc logic tàng trữ dữ liệu trong một tấm riêng biệt. Theo phong cách này, các service được bịt dấu về phong thái các chuyển động cấp phải chăng để truy cập cơ sở tài liệu được thực hiện. Nó nói một cách khác là nguyên tắc tách logic (Separation of Logic).

Xem thêm: Trái Tim Kiêu Hãnh (Tập 33) Phim Việt Nam Hay Về Đá Cầu, Alomua Vn, Huongsacdatviet

Ý tưởng là rứa vì bao gồm logic tiếp xúc trực tiếp với đại lý dữ liệu, hệ thống file, dịch vụ thương mại web hoặc ngẫu nhiên cơ chế tàng trữ nào mà ứng dụng cần sử dụng, họ sẽ để xúc tích và ngắn gọn này sẽ giao tiếp với lớp trung gian DAO. Lớp DAO này sau đó tiếp xúc với hệ thống lưu trữ, hệ quản lí trị cơ sở dữ liệu như triển khai các quá trình liên quan đến lưu trữ và truy hỏi vấn dữ liệu (tìm kiếm, thêm, xóa, sửa,…).

*
*

User.java

package com.reciclage.org.patterns.structural.dao;import lombok.AllArgsConstructor;import lombok.Data;AllArgsConstructorpublic class User private int id;private String name;private String email;Dao.java

package com.reciclage.org.patterns.structural.dao;import java.util.List;import java.util.Optional;public interface Dao List getAll();Optional get(int id);void save(T t);void update(T t);void delete(T t);UserDao.java

package com.reciclage.org.patterns.structural.dao;import java.util.ArrayList;import java.util.List;import java.util.Optional;public class UserDao implements Dao {private danh sách users = new ArrayList();public UserDao() users.add(new User(1, “GP Coder”, “contactOverridepublic Optional get(int id) return users.stream().filter(u -> u.getId() == id).findFirst();Overridepublic void update(User user) get(user.getId()).ifPresent(existUser -> existUser.setName(user.getName());existUser.setEmail(user.getEmail()););Overridepublic void delete(User user) get(user.getId()).ifPresent(existUser -> users.remove(existUser));DaoPatternExample.java

package com.reciclage.org.patterns.structural.dao;public class DaoPatternExample private static Dao userDao;public static void main(String args) userDao = new UserDao();User user1 = userDao.get(1).get();System.out.println(“user1: ” + user1);user1.setName(“updated.” + user1.getName());userDao.update(user1);System.out.println(“All users: “);userDao.getAll().forEach(user -> System.out.println(user));User.java

user1: User(id=1, name=GP Coder, email=contactgmail.com)

Lợi ích của DAO Pattern là gì?

Giảm sự kết nối (loose coupling) giữa ngắn gọn xúc tích nghiệp vụ (Business) và logic lưu trữ (Persistence).Mẫu DAO cho phép đóng gói code để thực hiện làm việc CRUD, ngăn ngừa việc implement trơ khấc trong từng phần khác biệt của ứng dụng.Dễ mở rộng, bảo trì: tất cả các cụ thể lưu trữ được ẩn ngoài phần còn lại của ứng dụng. Do đó, những chuyển đổi có thể được thực hiện bằng cách chỉ sửa thay đổi một implement của DAO trong những lúc phần còn sót lại của ứng dụng không bị hình ảnh hưởng. DAO chuyển động như một trung gian giữa ứng dụng và các đại lý dữ liệu.Dễ hiểu: mọi bạn đều theo một quy chuẩn đã được định sẵn, nên dễ hiểu hơn, huyết kiệm được không ít thời gian hơn.Trong một dự án lớn hơn, các nhóm khác biệt làm việc trên những phần không giống nhau của ứng dụng, chủng loại DAO có thể chấp nhận được phân bóc rõ ràng những thành phần này.

Sử dụng DAO Pattern khi nào?

Khi muốn biến đổi nguồn dữ liệu sau này, như chuyển từ cơ dữ liệu MySQL sang trọng Oracle, SQL Server, …Khi hy vọng phân tách bóc rõ ràng những thành phần của ứng dụng. Tài liệu tham khảo: