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
22. Maintenance
22.1. Defragment
22.2. Backup
23. Replication
23.1. Under the Hood
23.2. Replicating Existing Data Files
24. Semaphores
24.1. Locking objects
24.2. Ensuring Singletons
24.3. Limiting the number of users
24.4. Controlling log-in information
25. Messaging
26. Data Binding
27. Object Manager
27.1. Installation
27.1.1. Running
27.1.1.1. Windows IKVM
27.1.1.2. Windows no Java VM
27.1.1.3. Linux
27.1.1.4. Mac OS X
27.2. Object Manager Tour
27.2.1. Generic reflector versus the JDK reflector
27.2.2. Querying for objects
27.3. Known bugs and limitations
28. RegressionTests
28.1. The built-in db4o regression tests
28.2. Running the regression tests
28.3. Switching individual tests on or off
29. License
29.1. General Public License (GPL)
29.2. Commercial License
29.3. Bundled 3rd Party Licenses
30. Contacting db4objects Inc.