Search code examples
javamysqldatabasehibernateopen-source

feasible soution for client base architecture using java, hibernate and mysql (any opensource like H2, JavaDB)with automated database configuration


hello I am working on a software product (ie. type of purchase and sell recording software for a shop) build especially for client base, I mean front end application and database should be keep in client machine. I need a feasible solution to provide those package in a one bundle. I am using javafx for frond end, hibernate for relational mapping and mysql (basically opensource like H2, JavaDB) as database.

Q1.Is it feasible for this kind solution?

If not can you suggest me a substitute way.

And if yes, I need those package in one bundle, I mean client don't need to configure database password or other configuration. Can we provide a script or any kind of batch installation which can install jre or jdk, mysql or any opensouce db, our software and configures it automatically (ie. setting up root password). I know Install4j can done the bundle but I need the automated database configuration.

Q2. How can I do this?

I need a some kind of expert opinion.

Thank you.


Solution

  • If you use mysql, installation for you client will be a little bit involved for you and your customer as you will probably need to package the mysql installation package with your app and have your installer invoke the mysql installer.

    I'd suggest a lighter weight database than mysql which is written completely in Java. For example h2 as mentioned in your question or hsqldb, both are just a jar with no native portion - this will make distribution and configuration easier. Using Self Contained Application Packaging, the javafx deployment tools can package your app with it's supporting libraries, the hsqldb engine and a jre installation. Hibernate provides all of the database configuration mechanisms you need.