Об'єкт доступу до даних (англ. data access object) (DAO) - об'єкт що надає абстрактний інтерфейс до деяких видів баз даних чи механізмів персистентності реалізуючи певні операції без розкриття деталей бази даних. Він надає відображення від програмних викликів до рівня персистентності. Така ізоляція розділює запити до даних в термінах предметної області та їх реалізацію засобами СКБД.
Цей паттерн проєктування застосовний у більшості мов програмування, видів програмного забезпечення з потребою персистентності та більшості типів баз даних, але він традиційно асоціюється з застосунками Java EE та реляційними БД доступ до яких здійснюють через JDBC API що пов'язано з походженням паттерна із збірки найкращих практик Sun Microsystems. ("Core J2EE Patterns") для цієї платформи.
Переваги
Перевагою використання об'єкту доступу до даних є досить просте розділення двох частин програми, які мають бути розділені: , та логіки персистентності. В такому разі зміна бізнес логіки зовсім не буде впливати на роботу механізмів персистентності, а заміна схеми даних чи способу їх зберігання - не впливати на роботу бізнес логіки, якщо інтерфейс реалізований правильно.
Опис мовою Java
Нехай дано клас-сутність User
public class User{ private String userName; private String firstName; private String lastName; private String email; private int age; }
Тепер напишемо інтерфейс DAO.
public interface UserDAO { User get(String userName); void create(User user); void update(User user); void delete(String userName); }
DAO не повинний прив'язуватись до моделі і визначає лише основні CRUD операції.
Див. також
Посилання
- Core J2EE Patterns - Data Access Object [Архівовано 9 квітня 2012 у WebCite]
- Inner Class strategy [ 23 серпня 2011 у Wayback Machine.]
Інструменти та фреймворки
- система ORM для C++
- Persist [ 19 травня 2011 у Wayback Machine.] ORM інструмент
- DB Solo [ 28 березня 2022 у Wayback Machine.] генератор коду EJB 3.0 DAO
- MDAOG [ 13 квітня 2022 у Wayback Machine.] генератор коду DAO для PostgreSQL
- (Firestorm/DAO) Генератор для JDBC DAO, Spring DAO, Hibernate DAO
- JingDAO [ 24 липня 2011 у Wayback Machine.] DAO фреймворк
- PerfectJPattern Open Source Project [ 6 травня 2011 у Wayback Machine.], компонентна реалізація шаблону DAO в Java (JPA, Hibernate та Spring)
- nHydrate [ 12 березня 2011 у Wayback Machine.] DAO/DTO фреймворк, генератор коду для .NET
- AuDAO [ 16 липня 2011 у Wayback Machine.] Генератор для JDBC DAO (MySQL, Oracle) та Google App Engine datastore
- IBM pureQuery [ 24 квітня 2011 у Wayback Machine.]
- ComtorDAO Data Access Object Library for java [ 13 грудня 2010 у Wayback Machine.]
- Lightweight Object Relational Mapping (ORM) фреймворк на Java для JDBC та Android
- EasyDriver [ 7 березня 2011 у Wayback Machine.] Java-бібліотека для створення запитів що можуть використовуватись у контексті DAO.
Зноски
- Core J2EE Patterns - Data Access Objects. Sun Microsystems Inc. 2 серпня 2007. Архів оригіналу за 9 квітня 2012. Процитовано 26 березня 2011.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Ob yekt dostupu do danih angl data access object DAO ob yekt sho nadaye abstraktnij interfejs do deyakih vidiv baz danih chi mehanizmiv persistentnosti realizuyuchi pevni operaciyi bez rozkrittya detalej bazi danih Vin nadaye vidobrazhennya vid programnih viklikiv do rivnya persistentnosti Taka izolyaciya rozdilyuye zapiti do danih v terminah predmetnoyi oblasti ta yih realizaciyu zasobami SKBD Cej pattern proyektuvannya zastosovnij u bilshosti mov programuvannya vidiv programnogo zabezpechennya z potreboyu persistentnosti ta bilshosti tipiv baz danih ale vin tradicijno asociyuyetsya z zastosunkami Java EE ta relyacijnimi BD dostup do yakih zdijsnyuyut cherez JDBC API sho pov yazano z pohodzhennyam patterna iz zbirki najkrashih praktik Sun Microsystems Core J2EE Patterns dlya ciyeyi platformi PerevagiPerevagoyu vikoristannya ob yektu dostupu do danih ye dosit proste rozdilennya dvoh chastin programi yaki mayut buti rozdileni ta logiki persistentnosti V takomu razi zmina biznes logiki zovsim ne bude vplivati na robotu mehanizmiv persistentnosti a zamina shemi danih chi sposobu yih zberigannya ne vplivati na robotu biznes logiki yaksho interfejs realizovanij pravilno Opis movoyu JavaNehaj dano klas sutnist User public class User private String userName private String firstName private String lastName private String email private int age Teper napishemo interfejs DAO public interface UserDAO User get String userName void create User user void update User user void delete String userName DAO ne povinnij priv yazuvatis do modeli i viznachaye lishe osnovni CRUD operaciyi Div takozhCreate read update ta delete CRUD Data Transfer Object Design Patterns kniga Ob yektno relyacijne vidobrazhennyaPosilannyaCore J2EE Patterns Data Access Object Arhivovano 9 kvitnya 2012 u WebCite Inner Class strategy 23 serpnya 2011 u Wayback Machine Instrumenti ta frejmvorkisistema ORM dlya C Persist 19 travnya 2011 u Wayback Machine ORM instrument DB Solo 28 bereznya 2022 u Wayback Machine generator kodu EJB 3 0 DAO MDAOG 13 kvitnya 2022 u Wayback Machine generator kodu DAO dlya PostgreSQL Firestorm DAO Generator dlya JDBC DAO Spring DAO Hibernate DAO JingDAO 24 lipnya 2011 u Wayback Machine DAO frejmvork PerfectJPattern Open Source Project 6 travnya 2011 u Wayback Machine komponentna realizaciya shablonu DAO v Java JPA Hibernate ta Spring nHydrate 12 bereznya 2011 u Wayback Machine DAO DTO frejmvork generator kodu dlya NET AuDAO 16 lipnya 2011 u Wayback Machine Generator dlya JDBC DAO MySQL Oracle ta Google App Engine datastore IBM pureQuery 24 kvitnya 2011 u Wayback Machine ComtorDAO Data Access Object Library for java 13 grudnya 2010 u Wayback Machine Lightweight Object Relational Mapping ORM frejmvork na Java dlya JDBC ta Android EasyDriver 7 bereznya 2011 u Wayback Machine Java biblioteka dlya stvorennya zapitiv sho mozhut vikoristovuvatis u konteksti DAO ZnoskiCore J2EE Patterns Data Access Objects Sun Microsystems Inc 2 serpnya 2007 Arhiv originalu za 9 kvitnya 2012 Procitovano 26 bereznya 2011