• 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.