| database | A list of key/value pairs as a which are the database name and the database path. |
| name | A name, can be any text. |
| properties | The server hsql properties. |
| serverState | The current state of this server in numerically coded form. |
| Example 1 | Using an HSQL Server and an HSQL connection to run lots of SQL. |
| Example 2 | Using an HSQL Server to provide a sql-persister-service. |
| Configured By | ELEMENT |
| Access | READ_WRITE |
| Required | No. |
A list of key/value pairs as a which are the database name and the database path. Hsqldb supports up to 10 databases per server instance.
| Configured By | ATTRIBUTE |
| Access | READ_WRITE |
| Required | No. |
A name, can be any text.
| Configured By | ELEMENT |
| Access | READ_WRITE |
| Required | No. |
The server hsql properties. For more information please see the hsqldb documentation.
| Access | READ_ONLY |
| Required | Read Only. |
The current state of this server in numerically coded form.
Typically, this will be one of:
Using an HSQL Server and an HSQL connection to run lots of SQL.
<oddjob id="this">
<job>
<sequential id="top" name="Run in Sequence">
<jobs>
<properties>
<values>
<value key="work.dir" value="./work/hsql-example"/>
</values>
</properties>
<hsql:hsqldb name="Hsqldb Server" xmlns:hsql="http://rgordon.co.uk/oddjob/hsql">
<database>
<value key="mydb" value="${work.dir}/mydb"/>
</database>
<properties>
<properties>
<values>
<value key="server.port" value="11001"/>
<value key="server.silent" value="false"/>
</values>
</properties>
</properties>
</hsql:hsqldb>
<variables id="vars">
<connection>
<hsql:connection url="jdbc:hsqldb:hsql://localhost:11001/mydb" username="sa" xmlns:hsql="http://rgordon.co.uk/oddjob/hsql"/>
</connection>
</variables>
<folder name="Setup Sql">
<jobs>
<sequential id="setup" name="All">
<jobs>
<sql name="Create table">
<connection>
<value value="${vars.connection}"/>
</connection>
<input>
<buffer>create table greetings (
style varchar(20), greeting varchar(30),constraint greetings_pk primary key (style))</buffer>
</input>
</sql>
<sql name="Insert1">
<connection>
<value value="${vars.connection}"/>
</connection>
<input>
<buffer>insert into greetings values ('nice', 'hello')</buffer>
</input>
</sql>
<sql name="Insert1">
<connection>
<value value="${vars.connection}"/>
</connection>
<input>
<buffer>insert into greetings values ('grumpy', 'bah humbug')</buffer>
</input>
</sql>
</jobs>
</sequential>
</jobs>
</folder>
<folder name="Query Sql">
<jobs>
<sequential id="single-query" name="All">
<jobs>
<sql id="query" name="Query">
<connection>
<value value="${vars.connection}"/>
</connection>
<input>
<buffer>select greeting from greetings where style='nice'</buffer>
</input>
<results>
<sql-results-bean/>
</results>
</sql>
<echo id="result">${query.results.row.GREETING}</echo>
<echo id="resultindexed">${query.results.rows[0].GREETING}</echo>
</jobs>
</sequential>
</jobs>
</folder>
<folder name="Query All">
<jobs>
<sequential id="all-query" name="All">
<jobs>
<sql id="queryall" name="Query">
<connection>
<value value="${vars.connection}"/>
</connection>
<input>
<buffer>select style, greeting from greetings</buffer>
</input>
<results>
<sql-results-bean/>
</results>
</sql>
<foreach id="for">
<values>
<value value="${queryall.results.rows}"/>
</values>
<configuration>
<inline>
<foreach id="each">
<job>
<echo name="Echo Row ${each.index}">${each.current.STYLE} is ${each.current.GREETING}</echo>
</job>
</foreach>
</inline>
</configuration>
</foreach>
</jobs>
</sequential>
</jobs>
</folder>
<folder name="Cleanup Sql">
<jobs>
<sql id="clean-up" name="Sql Job">
<connection>
<value value="${vars.connection}"/>
</connection>
<input>
<buffer>drop table greetings</buffer>
</input>
</sql>
</jobs>
</folder>
</jobs>
</sequential>
</job>
</oddjob>
Using an HSQL Server to provide a sql-persister-service.
<oddjob>
<job>
<sequential name="Sql Persister Example">
<jobs>
<hsql:hsqldb name="Database Server" xmlns:hsql="http://rgordon.co.uk/oddjob/hsql">
<database>
<value key="ojdb" value="${work.dir}/ojdb"/>
</database>
<properties>
<properties>
<values>
<value key="server.port" value="11002"/>
<value key="server.silent" value="false"/>
</values>
</properties>
</properties>
</hsql:hsqldb>
<variables id="vars">
<persisterConnection>
<hsql:connection url="jdbc:hsqldb:hsql://localhost:11002/ojdb" username="sa" xmlns:hsql="http://rgordon.co.uk/oddjob/hsql"/>
</persisterConnection>
</variables>
<sql name="Create table">
<connection>
<value value="${vars.persisterConnection}"/>
</connection>
<input>
<buffer>CREATE TABLE oddjob( path VARCHAR(32),
id VARCHAR(32), job BLOB,
CONSTRAINT oddjob_pk PRIMARY KEY (path, id))</buffer>
</input>
</sql>
<sql-persister-service id="persister-service">
<connection>
<value value="${vars.persisterConnection}"/>
</connection>
</sql-persister-service>
<oddjob id="database-persist-example" name="A Database Persisted Oddjob">
<configuration>
<arooa:configuration resource="org/oddjob/hsql/OddjobToPersist.xml" xmlns:arooa="http://rgordon.co.uk/oddjob/arooa"/>
</configuration>
<persister>
<value value="${persister-service.persister(example)}"/>
</persister>
</oddjob>
<folder name="Cleanup Sql">
<jobs>
<sql id="clean-up" name="Sql Job">
<connection>
<value value="${vars.persisterConnection}"/>
</connection>
<input>
<buffer>drop table oddjob</buffer>
</input>
</sql>
</jobs>
</folder>
</jobs>
</sequential>
</job>
</oddjob>