What is the best value of a Java object database?

What is the best value of a Java object database that has:

  • Ease of use: one line of code to store any object.
  • Efficient memory usage: i.e. only loads what is required, and not the entire object each time (i.e., "Transparent Activation").
  • Automatically change objects when (i.e. "transparent" Persistence ").
  • Custom query (no need for SQL, JDOQL, etc.)
  • Free

where anyone has experience in the following:

  • Neodatis
  • db4o
  • Jodb
  • joafip
  • Myoodb

?

+7
source share
3 answers

I can only answer for db4o. I do not have enough experience with other databases that you named.

  • Ease of use: I think db4o is very easy to use in many scenarios. You add the db4o jar to your project, open the database and start storing and querying objects .
  • Efficient memory usage: Yes, db4o can do this. It supports transparent activation . In this mode, db4o loads only those objects that you are actually using.
  • Automatically change objects during manipulation: also supported.
  • Internal query: Yes db4o supports this. Native inquiries are great and strong. However, in practice, complex source queries often cannot be optimized and run slowly. In such cases, you should return to the less elegant SODA requests.
  • It is free under the GPL license.

Another advantage of db4o is that it has a community that can help and share knowledge.

Do you have a specific use case for the database? I think you should choose the database that best suits your application.

+4
source

I recently used HyperGraphDB , which meets all your requirements. I am very impressed with this: “HyperGraphDB is a general-purpose open source data storage engine based on the powerful knowledge management formalism known as directional hypergraphs. While the persistent memory model is designed primarily for knowledge management, AI and semantic web projects can also be used as a built-in object-oriented database for Java projects of any size, or a graph database, or a relational database (not SQL).

+1
source

Take a look at Redis:

http://redis.io/clients

It has Java clients, and from personal experience, Java objects display Key-Value-based databases better than Relational DB, but YMMV, depending on your usage patterns and data types.

Note. It may not cover all of your requirements above, but you could probably add such features quite easily.

Update: https://github.com/xetorthio/johm

0
source

All Articles