I have to look for a appropriate database for my application, that satisfy following criteria,

  1. Zero intallation
  2. Zero configuration
  3. Portable (client wants database file to have the ability to change in one machine to a different by hand.)

Please suggest us a appropriate database for that above criteria.

I'd recommand h2

For java I'll opt for Apache Derby (also known as Java DB).

I suggest JavaDB, technology-not only being an in process database and contains good performance. I have tried personally it in a number of projects, mainly in Java Swing desktop programs.

Seems like you need to use SQLite for your.

Take a look at Java and SQLite based on how to have interaction using the SQLite databae from Java.

for me personally mongodb also meets these criteria (unless of course you actually need sql database)