Download presentation
Presentation is loading. Please wait.
Published byLinette Hart Modified over 9 years ago
1
Tallinna Tehnikaülikool Informaatikainstituut Javal baseeruv objektide püsivuse kiht Jakamar Bakalaureusetöö Üliõpilane:Erki Suurjaak Matrikli nr: 970772 Juhendaja:Tarmo Veskioja
2
Defence Overview What is object persistence What solution did I propose What is Jakamar Benefits and tradeoffs
3
What is object persistence objects existing beyond application’s lifetime Data Store Application Objects
4
Concerns using OOP and RDBMS handling changes in the data structure possible to reuse persistence logic
5
What solution did I propose Persistence Broker design pattern enables full separation of business and persistence logic easily customizable for different applications offers useful functionality, like object caching
6
Architecture Database User Interface Classes Business classes Persistence Broker Cache Database User Interface Classes Business classes Simple architectureUsing a Persistence Broker
7
What is Jakamar a reusable component provides automated persistence
8
Jakamar in the thesis architecture program flow functionality error handling security concurrent use logging configuration
9
Benefits Easier maintenance Less program code to write: access to persistence via simple operations like –store(object) –delete(object) –retrieve(query criteria)
10
Benefits (2) Connection connection = DriverManager.getConnection("jdbc:odbc:emt"); Statement stmt = connection.createStatement(); ResultSet rs = stmt.executeQuery("SELECT * FROM PERSON WHERE location = 'Jõhvi'"); Collection results = new ArrayList(); while (rs.next()) { Person person = new Person(); person.id = rs.getInt("id"); person.firstName = rs.getString("firstName"); person.lastName = rs.getString("lastName"); person.location = rs.getString("location"); results.add(person); Statement stmtSub = connection.createStatement(); ResultSet rsSub = stmtSub.executeQuery( "SELECT * FROM PHONE WHERE personId = " + person.id); while (rsSub.next()) { Phone phone = new Phone(); phone.id = rsSub.getInt("id"); phone.personId = rsSub.getInt("personId"); phone.phone = rsSub.getString("phone"); person.phones.add(phone); } stmtSub.close(); } stmt.close(); connection.close(); PersistenceBroker broker = PersistenceBrokerFactory.create("conf.xml"); Person param = new Person(); param.location = "Jõhvi"; Query query = broker.createQuery(param, new String[]{"location"}, null); Collection results = broker.retrieveCollection(query); Using JakamarAccessing the database directly
11
Tradeoffs decrease in functionality –with embedded SQL,extremely complex queries accessible as easily as simple retrieval –with Jakamar, restrictions on query complexity
12
Benchmarks better performance on object retrieval worse performance on storing objects Repeated? - whether the same operation was repeated multiple times
13
Conclusion the Persistence Broker pattern is a good approach Jakamar is a viable component –faster development –better modularized application structure –possibly better performance on retrieval
15
Further development cursors transactions Object Query Language distributed use extent classes graphical configuration interface
16
Database Persistence Broker Reflection Persistence Mapping Cache Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects Query Mechanism Application Applications Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects Identities Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects Field Values Persistent Objects Persistent Objects Field Values Persistent Objects Persistent Objects SELECT Results Persistent Objects Persistent Objects ACTION Queries Persistent Objects Persistent Objects SELECT Queries Conversion Persistent Objects Persistent Objects Field Values Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects Queries Persistent Objects Persistent Objects Field Values Persistent Objects Persistent Objects Column Values Storing and deleting Handles executing SQL statements Converts object field values to table column values and vice versa Contains mappings between classes and tables Caches persistent objects Accesses object fields dynamically Looking up cached instances Deleting storage and deletion Persistent Objects Persistent Objects Persistent Objects Delegating queries from the application to lower level Specifying the field values of objects to store or delete Returning the field values for retrieved objects Persistent Objects Persistent Objects Field Values Specifying the criteria field values Retrieving Database-specific SQL queries Persistent Objects Persistent Objects Queries Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects Persistent Objects
17
Object relations
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.