Over a million developers have joined DZone.
{{announcement.body}}
{{announcement.title}}

How to Remotely Connect to an In-Memory HSQLDB [Snippet]

DZone's Guide to

How to Remotely Connect to an In-Memory HSQLDB [Snippet]

In-memory databases are a common occurrence with unit tests, so let's take a look at how to remotely connect to an instance if you need to, say, debug some data or tests.

· Database Zone ·
Free Resource

RavenDB vs MongoDB: Which is Better? This White Paper compares the two leading NoSQL Document Databases on 9 features to find out which is the best solution for your next project.  

Very often, in-memory instances of HSQLDB are used in the context of unit tests; the unit test starts a database instance (eventually on a random port), provisions the database with some data, runs the test against the database end, then stops it.

Now, from time to time you need to debug unit tests, and sometimes you also need to manually run some queries on the in-memory database (using HSQLDB manager or any other software).

So here are the steps in order to be able to connect to an in-memory HSQLDB instance:

  • Start the DB in the “remote open db” mode. This is driven by the “server.remote_open” property that is false by default (you can look to the code of org.hsqldb.server.ServerProperties class to see other properties that might be interesting). The code that starts a database instance in remote open mode will look something like:
HsqlProperties props = new HsqlProperties();
props.setProperty("server.remote_open", true);
....add more properties here
Server server = new Server();
server.setProperties(props);
server.start();
  • Connect to the data base instance. Now that the database has started, the next step is to connect to data base instance. Because we started an in-memory instance, the connection URL is a memory database URL that looks like jdbc:hsqldb:mem:instanceName. You will not be able to connect using this URL because neither the host and the port are available. Instead, you should use a server database URL that looks like: jdbc:hsqldb:hsql://host:port/instanceName

Do you pay to use your database? What if your database paid you? Learn more with RavenDB.

Topics:
hsqldb ,database ,jdbc ,unit testing

Published at DZone with permission of

Opinions expressed by DZone contributors are their own.

{{ parent.title || parent.header.title}}

{{ parent.tldr }}

{{ parent.urlSource.name }}