Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Setting up an embedded Derby database in a standalone Java application

I'm trying to setup an embedded Derby database for a standalone Java application, but after pouring through all sorts of documentation, I just can't seem to find any simple explanations or examples. I'm using Eclipse with the Derby plugin and have enabled Derby nature for my project.

I found an example of using an embedded Derby database in a standalone address book as well as an overview of using Derby in Eclipse (that doesn't seem to cover the embedded deployment), but I still feel like I'm missing something fundamental.

This is my first time attempting to use a database with Java, and I'm a little confused, so here are my basic questions:

  • What's the basic philosophy (or model) for how Java interacts with a Derby database (in an embedded deployment)? Are their important design patterns to be followed?
  • Do I need to create some type of database constructor (that includes table structure, etc.) in a class, or is that all done with some other tool?
  • One the database is created and saved, how do I "start" it up? And where is the actual database saved?

Snippets of code would be very helpful!

like image 427
Clark Minor Avatar asked Sep 05 '25 07:09

Clark Minor


1 Answers

To use Derby in Java in embedded mode, we need to do the following steps:

  • Use the org.apache.derby.jdbc.EmbeddedDriver driver, located in the derbyclient Maven dependency
  • Use the connection string for embedded mode: jdbc:derby:dbname
  • Set up the Derby system home: System.setProperty("derby.system.home", "/home/janbodnar/.derby");
  • Shut down Derby programatically at the end: DriverManager.getConnection("jdbc:derby:;shutdown=true");
  • Handle XJ015 error, which is triggered at successfull shutdown

Full working examples can be found at my Java JDBC Derby programming tutorial.

like image 185
Jan Bodnar Avatar answered Sep 07 '25 20:09

Jan Bodnar