jee – design patternsa78khan/cs446/additional-material/scribe/1… · jee – design patterns...
TRANSCRIPT
![Page 1: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/1.jpg)
WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
JEE – Design PatternsJEE – Design PatternsData Access ObjectsData Access Objects
CS 446/646 ECE452Jun 15th, 2011
IMPORTANT NOTICE TO STUDENTS
These slides are NOT to be used as a replacement for student notes.These slides are sometimes vague and incomplete on purpose to spark class discussions
![Page 2: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/2.jpg)
2WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
MotivationIntent● abstract access to data repository
![Page 3: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/3.jpg)
3WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
MotivationForces● enterprise applications will work with heterogeneous
data-stores– persistence storage APIs– type of the data-store
● relational database, flat files, OO db, legacy systems
– merging access logic into the components make them less portable
Solution● Data Access Object (DAO) to abstract and encapsulate
all access to the data source
![Page 4: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/4.jpg)
4WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
Data Access Object
Client Tier Server Tier
Presentation
Data Tier
Business
DataSource
Application
Controllers
Services
Data Access
A
A
W
W
Web
![Page 5: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/5.jpg)
5WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
Data Access Object
![Page 6: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/6.jpg)
6WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
Example
what design pattern should we use for OracleConnection?
have we achieved database neutrality?
![Page 7: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/7.jpg)
7WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
Use Abstract Factory
![Page 8: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/8.jpg)
8WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
Use Abstract Factory
![Page 9: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/9.jpg)
9WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCEhttp://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
![Page 10: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/10.jpg)
10WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCEhttp://java.sun.com/blueprints/corej2eepatterns/Patterns/DataAccessObject.html
![Page 11: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/11.jpg)
11WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
ConcernsOR Mapping
User
id
fname Group
id
name
lname
belongs
![Page 12: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/12.jpg)
12WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
ConcernsOR Mapping● identifiers● foreign keys● how can we maps objects to database tables?
– example user & groups● how do we map associations
– object to object– object to list of objects– object to map of objects
![Page 13: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/13.jpg)
13WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
ConcernsOR Mapping● mapping inheritance
– table per class hierarchy● strategy: identify each subtype by a unique discriminator
ID TYPE AMOUNT
1 CREDIT 20.00
2 CASH 45.45
3 CHEQUE 2.00
what are some of the limitations?
![Page 14: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/14.jpg)
14WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
ConcernsOR Mapping● mapping inheritance
– table per sub class● one table to represent the common attributes● one table per sub-class● need to maintain associations
– independent table per subclass● what do we loose here?● probably most flexible
![Page 15: JEE – Design Patternsa78khan/cs446/additional-material/scribe/1… · JEE – Design Patterns Data Access Objects CS 446/646 ECE452 Jun ... Data Access Object (DAO) to abstract](https://reader035.vdocuments.mx/reader035/viewer/2022062605/5fd860df37ab6e4b4711904b/html5/thumbnails/15.jpg)
15WATERLOOCHERITON SCHOOL OFCOMPUTER SCIENCE
ConcernsObject Life Cycle● entity objects are complex (composite)
– delete a single user object– what are we deleting (?,?)
● cascading deletes– what qualifies for cascading delete– constraints (FK, not null etc...)
Tools● Hibernate● Oracle TopLink