Welcome
Download Contents
1. First Glance
1.1. The db4o engine...
1.2. Installation
1.3. db4o Object Manager
1.4. API Overview
2. First Steps
2.1. Opening the database
2.2. Storing objects
2.3. Retrieving objects
2.4. Updating objects
2.5. Deleting objects
2.6. Conclusion
2.7. Full source
3. Querying
3.1. Query by Example (QBE)
3.2. Native Queries
3.2.1. Concept
3.2.2. Principle
3.2.3. Simple Example
3.2.4. Advanced Example
3.2.5. Arbitrary Code
3.2.6. Native Query Performance
3.2.7. Full source
3.3. SODA Query API
3.3.1. Simple queries
3.3.2. Advanced queries
3.3.3. Conclusion
3.3.4. Full source
4. Structured objects
4.1. Storing structured objects
4.2. Retrieving structured objects
4.2.1. QBE
4.2.2. Native Queries
4.2.3. SODA Query API
4.3. Updating structured objects
4.3.1. Update depth
4.4. Deleting structured objects
4.4.1. Recursive deletion
4.4.2. Recursive deletion revisited
4.5. Conclusion
4.6. Full source
5. Collections and Arrays
5.1. Storing
5.2. Retrieving
5.2.1. QBE
5.2.2. Native Queries
5.2.3. Query API
5.3. Updating and deleting
5.4. Conclusion
5.5. Full source
6. Inheritance
6.1. Storing
6.2. Retrieving
6.3. Updating and deleting
6.4. Conclusion
6.5. Full source
7. Deep graphs
7.1. Storing and updating
7.2. Retrieving
7.2.1. Activation depth
7.3. Conclusion
7.4. Full source
8. Transactions
8.1. Commit and rollback
8.2. Refresh live objects
8.3. Conclusion
8.4. Full source
9. Client/Server
9.1. Embedded server
9.2. Networking
9.3. Out-of-band signalling
9.4. Putting it all together: a simple but complete db4o server
9.5. Conclusion
9.6. Full source
10. SODA Evaluations
10.1. Evaluation API
10.2. Example
10.3. Drawbacks
10.4. Conclusion
10.5. Full source
11. Constructors
11.1. Instantiating objects
11.1.1. Using a constructor
11.1.2. Bypassing the constructor
11.1.3. Using a translator
11.2. Configuration
11.3. Troubleshooting
11.4. Examples
12. Translators
12.1. An example class
12.1.1. Using the constructor
12.1.2. Bypassing the constructor
12.2. The Translator API
12.2.1. ObjectTranslator
12.2.2. ObjectConstructor
12.3. A translator implementation
12.4. Conclusion
12.5. Full source
13. Configuration
13.1. Scope
13.2. Calling Methods
14. Indexes
15. IDs
15.1. Internal IDs
15.2. Unique Universal IDs (UUIDs)
16. Callbacks
17. Classloader issues
17.1. Classloader basics
17.2. Configuration
17.3. Typical Environments
17.3.1. Servlet container
17.3.2. Eclipse
17.4. Running without classes
18. Servlets
19. Encryption
19.1. eXtended Tiny Encryption Algorithm
19.2. Built-In Simple Encryption
19.3. Custom Encryption Adapters
20. Refactoring and "Schema Evolution"
20.1. Introduction
20.2. What db4objects does today automatically or easily
20.3. What is not yet automated
21. Tuning
21.1. Enable Field Indexes
21.2. Discarding Free Space
21.3. Calling constructors
21.4. Turning Off Weak References
21.5. Defragment
21.6. No Shutdown Thread
21.7. No callbacks
21.8. No schema changes
21.9. No lock file thread
21.10. No test instances
21.11. Increasing the maximum database file size
21.12. FlushFileBuffers(false)
22. Native Query Optimization
22.1. Enabling Native Query optimization on the CompactFramework 2.0
22.2. Build
22.3. Monitoring optimization
23. Maintenance
23.1. Defragment
23.2. Backup
24. Replication
24.1. Under the Hood
24.2. Replicating Existing Data Files
25. Semaphores
25.1. Locking objects
25.2. Ensuring Singletons
25.3. Limiting the number of users
25.4. Controlling log-in information
26. Messaging
27. .NET Specific Notes
27.1. Enums
27.2. Delegates and Events
28. Data Binding
29. Object Manager
29.1. Installation
29.1.1. Running
29.1.1.1. Windows IKVM
29.1.1.2. Windows no Java VM
29.1.1.3. Linux
29.1.1.4. Mac OS X
29.2. Object Manager Tour
29.2.1. Generic reflector versus the JDK reflector
29.2.2. Querying for objects
29.3. Known bugs and limitations
30. License
30.1. General Public License (GPL)
30.2. Commercial License
30.3. Bundled 3rd Party Licenses
31. Contacting db4objects Inc.