Data access object: Difference between revisions

Content deleted Content added
xlinked DBIx::Class ORM
Removing unreferenced claims
Line 23:
 
== Disadvantages ==
Potential disadvantages of using DAO include [[leaky abstraction]],{{Citation needed|reason=What kind of leak?|date=August 2014}} [[Duplicate code|code duplication]], and [[abstraction inversion]]. In particular, the abstraction of the DAO as a regular Java object can hide the high cost of each database access, and can also force developers to trigger multiple database queries to retrieve information that could otherwise be returned in a single operation with normal SQL set operations. If an application requires multiple DAOs, one might find oneself repeating essentially the same create, read, update, and delete code for each DAO. This boiler-plate code may be avoided however, by implementing a generic DAO that handles these common operations.<ref>See http://www.ibm.com/developerworks/java/library/j-genericdao/index.html for workarounds</ref> Time consumption is moderate.{{Citation needed|date=December 2014}}
<!-- complete hogwash and speculation; original research with no sourcing whatsoever; title is "alternatives" in plural, while only one resemblance of alternative is presented. Commented out for now, maybe revive after there are several alternatives to DAOs
 
== Alternatives ==
DAO is a product of deep legacy thinking in which data objects in a computer's memory are '''translated''' into the [[third normal form]] data model of a relational database. This represents a significant overhead for development and maintenance and is usually chosen because of the desire to benefit from the productivity which can be derived from the use of [[SQL]].
 
[[XML]] is an alternative foundation on which to design and build a Persistence and Integration Strategy (which also includes Presentation) for modern software.{{Citation needed|date=December 2014}} When used with the objective of having minimal data format translation, whole systems can be built with XML that don't require the inherent data format translation of the DAO model.{{Citation needed|date=December 2014}} XML is self describing and self altering from the following points of view: 1) its schema can be defined in XML with .[[XSD]] files; and 2) it can be transformed using XML in the form of .[[XSLT]] and .[[CSS]] files. When combined with [[XQuery]] (replacing SQL), [[jQuery]], [[HTML5]], [[Extensible Application Markup Language|XAML]], [[JavaScript]], [[Node.js]], [[Atom (standard)]], ([[Representational state transfer|REST]]), [[JSON]], [[RAML (software)]] and databases like [[eXist]] and [[CouchDB]], software applications can be built with the "XML everywhere" model, which is agile, brief and powerful. In this model, the application design, work flow and configuration is also in XML, and each of these is used to assemble the Atom service calls into an XML application which talks to human beings, databases and other computer services with the same basic paradigm: XML. This approach also provides an advantage when targeting mobile apps by using an HTML5 Compiler. -->
 
== Tools and frameworks ==