HSQLDB

other languages: Inglese

Questo articolo introduce HSQLDB, e fornisce un introduzione al lancio ed all’uso del db

Introduzione ad HSQLDB

HSQLDB (HyperSQL Database) è un DBMS relazionale, scritto interamente in Java. Contiene un DB Engine piccolo e veloce, in grado sia di realizzare sia persistenza su disco che persistenza in-memory. In aggiunta include diversi strumenti, come un tool grafico di amministrazione, e un Web Server minimale. HSQLDB attualmente viene usato come database per in diversi progetti open source (vedi lista).

Documentazione ufficiale : HSQLDB guide (pdf)

Lancio del server

Ci sono diversi modi per fare partire il server: come HSQL Server (modo standard), come HTTP Server, come HTTP Servlet oppure da programma Java.

Il modo d’uso più comune (e più rapido) consiste nel lanciare un’istanza di HSQL Server da riga di comando. Vedi esempio

java -cp ../lib/hsqldb.jar org.hsqldb.server.Server --database.0 file:mydb --dbname.0 xdb

L’esempio sopra lancia l’istanza di HSQL Server ( org.hsqldb.server.Server ) con un database, di nome “xdb” ; con persistenza su files di nome mydb.* ( creati o cercati nella directory corrente ). Volendo lanciare un ‘istanza di HTTP Server, basta cambiare il nome della main class del server con il classname completo.

org.hsqldb.server.WebServer

Il server può anche essere lanciato come HTTP Servlet. In questo modo si accede al DB, tramite il protocollo HTTP, su un servlet engine (o application server) separato rispetto all’applicazione corrente.

Come detto il server può anche essere lanciato da programma Java. . Il codice sottostante fa un esempio di lancio del server ed esecuzione di semplici comandi.

Server hServer;
try{
  hServer = new Server( );
  hServer.setLogWriter( null );
  hServer.setSilent( true );

  // database: name e file storage
  hServer.setDatabaseName( 0, "xdb" );
  hServer.setDatabasePath( 0, "file:testdb" );

  // database start
  hServer.start();

  // db connect
  Connecction conn = null;
  //
  try{
    Class.forName("org.hsqldb.jdbcDriver");
    // connect
    conn = DriverManager.getConnection(
      "jdbc:hsqldb:hsql://localhost/xdb", "sa", "");
    // execute statement
    conn.prepareStatement("drop table testtable;")
      .execute();
    conn.prepareStatement(
      "create table testtable ( id INTEGER, name VARCHAR ) ;" )
      .execute();

  } finally {
    // connection close
    if( connection != null ) {
      conn.close();
    }
  }
} finally {
  // server close
  if( hServer != null ){
    hServer.stop();
  }
}

Per ulteriori dettagli si veda: