6

I don't know if its right place to ask this question or not, but I am asking here.

What I have tried till now :

In all my projects in JavaSE (Swings, JavaFX) etc I have used MySQL, Oracle, MS SQL Server for my backend.

But for any of these I need to install an individual software like MySQL server etc.

I was wondering if it is possible to get some alternative of this thing so that I don't need to install any extra individual software for database.

Database should be integrated within my JavaSE Application, like we see in normal softwares. We just install the software not the individual DBMS for it.

Such a database that allows me to take backup.

Any Suggestions for this ?

Charles
  • 50,943
  • 13
  • 104
  • 142
gprathour
  • 14,813
  • 5
  • 66
  • 90

1 Answers1

8

You can use

  1. Apache Derby
  2. SQLite
  3. HSQLDB

as portable database for your application.

Chan
  • 2,601
  • 6
  • 28
  • 45
  • Can I use them in JavaFX, Swings application for storing large amount of data ? Like for enterprise level application ? will it be a good idea ? – gprathour Feb 28 '12 at 07:57
  • 2
    @GPS Read this : http://stackoverflow.com/questions/784173/what-are-the-performance-characteristics-of-sqlite-with-very-large-database-file . the conclusion is there won't be any noticeable performance degrade when you store large amount of data. – gtiwari333 Feb 28 '12 at 08:03
  • 1
    You can use them for any Java app but for enterprise level database, you may need more control over your database and additional features such as partitions, stability, scalability, distributed arch, clustering support, etc. Hence a SQL product such as Oracle, MS SQL, DB2 or even Postgres are recommended. – Husain Basrawala Feb 28 '12 at 08:07
  • 1
    I suggest synchronizing data periodically between a Server SQL database since it's always good to keep it safe in a stable solution – Chan Feb 28 '12 at 08:49
  • FWIW I have used SqLite db's with > 100 000 rows on Android device, with good performance. So...SqLite should be up for any task you throw at it on a desktop machine. – user77115 Apr 11 '12 at 21:21