views:

32

answers:

1

A group has been using a VB app for a while and it uses an access db as its data storage. I've been tasked with completely redoing this in java. The application will be self-contained with the data local (with internet updates), but not a central connection to a db. So installation and local setup is a consideration. The access db is not huge (100MB-300MB) and is somewhat complex, but not overly.

I've always had to work around a set data environment and now find myself able to dictate it. So my question comes to "what should I do"/"what would you do"? Keep the ms access db. Go with another db. Use a java data storage environment.

I'd love to get some input on what would be the best ideas and direction to take while I can dictate it. What's worked what hasn't.

+1  A: 

I'd definitely avoid using Access again, just because it's not the most robust database out there. Java and JDBC play pretty well with most databases out there. Which one you choose depends entirely on your requirements e.g.:

  • Should it be free / open source
  • Are you deploying onto Windows in a Microsoft ecosystem or onto Linux
  • Must it be relational
  • Is the application deployed to different 'customers' with different data store requirements

One major advantage of using an ORM / JPA library like Hibernate is that you can have an abstract view on your JDBC data store, which makes it possible to switch out the database you use, which is occasionally useful for applications that are deployed in different environments for customers who use different databases (or if you change your mind later about the Database you'd like to use).

The easiest DB to use for local storage is one of the embedded Java ones e.g. H2 or even easier, JavaDB which is embedded in the JDK. This means that there isn't a separate installation process required for the database itself. Both H2 and JavaDB (Apache Derby) will scale to 100 / 300MB quite happily.

jamie mccrindle