# Class: RamDatabase

## jala.db.RamDatabase(name, username, password)

Instances of this class represent an in-memory sql database.
Important: You need the h2.jar in directory "lib/ext" of your helma installation for this library to work, which you can get at http://www.h2database.com/.

## Constructor

#### new RamDatabase(name, username, password)

Returns a newly created RamDatabase instance.

##### Parameters:

Name | Type | Description
--- | --- | ---
`name` | String | The name of the database. If not given a private un-named database is created, that can only be accessed through this instance of jala.db.RamDatabase
`username` | String | Optional username (defaults to "sa"). This username is used when creating the database, so the same should be used when creating subsequent instances of jala.db.RamDatabase pointing to a named database.
`password` | String | Optional password (defaults to "").

Source:
  - jala/code/Database.js, line 581

##### Returns:

A newly created instance of RamDatabase

### Methods

#### copyTables(database, tables)

Copies all tables in the database passed as argument into this embedded database. If any of the tables already exists in this database, they will be removed before re-created. Please mind that this method ignores any indexes in the source database, but respects the primary key settings.

##### Parameters:

Name | Type | Description
--- | --- | ---
`database` | helma.Database | The database to copy the tables from
`tables` | Array | An optional array containing the names of the tables to copy. If not given all tables are copied

Source:
  - jala/code/Database.js, line 833

#### dropTable(tableName)

Drops the table with the given name

##### Parameters:

Name | Type | Description
--- | --- | ---
`tableName` | String | The name of the table

Source:
  - jala/code/Database.js, line 791

##### Returns:

True if the table was successfully dropped, false otherwise

#### dump(file, props)

Dumps the database schema and data into a file

##### Parameters:

Name | Type | Description
--- | --- | ---
`file` | helma.File | The file where the database dump will be
`props` | Object | Optional object containing connection properties

Source:
  - jala/code/Database.js, line 945

##### Returns:

True in case the database was successfully dumped, false otherwise

#### getConnection(An)

Returns a connection to this database

##### Parameters:

Name | Type | Description
--- | --- | ---
`An` | Object | optional parameter object containing connection properties to add to the connection Url.

Source:
  - jala/code/Database.js, line 668

##### Returns:

A connection to this database

#### getName()

Returns the name of the database

Source:
  - jala/code/Database.js, line 588

##### Returns:

The name of the database

#### getPassword()

Returns the password of this database

Source:
  - jala/code/Database.js, line 606

##### Returns:

The password of this database

#### getProperties(props)

Returns a properties object containing the connection properties for this database.

##### Parameters:

Name | Type | Description
--- | --- | ---
`props` | Object | An optional parameter object containing connection properties to add to the connection Url.

Source:
  - jala/code/Database.js, line 651

##### Returns:

A properties object containing the connection properties

#### getUrl(props)

Returns the JDBC Url to connect to this database

##### Parameters:

Name | Type | Description
--- | --- | ---
`props` | Object | Optional connection properties to add

Source:
  - jala/code/Database.js, line 624

##### Returns:

The JDBC url to use for connecting to this database

#### getUsername()

Returns the username of this database

Source:
  - jala/code/Database.js, line 597

##### Returns:

The username of this database

#### runScript(file, props, charset, continueOnError)

Runs the script file passed as argument in the context of this database. Use this method to eg. create and/or populate a database.

##### Parameters:

Name | Type | Description
--- | --- | ---
`file` | helma.File | The script file to run
`props` | Object | Optional object containing connection properties
`charset` | String | Optional character set to use (defaults to "UTF-8")
`continueOnError` | Boolean | Optional flag indicating whether to continue on error or not (defaults to false)

Source:
  - jala/code/Database.js, line 919

##### Returns:

True in case the script was executed successfully, false otherwise

#### shutdown()

Stops this in-process database by issueing a "SHUTDOWN" sql command.

Source:
  - jala/code/Database.js, line 678

#### tableExists(name)

Returns true if the table exists already in the database

##### Parameters:

Name | Type | Description
--- | --- | ---
`name` | String | The name of the table

Source:
  - jala/code/Database.js, line 804

##### Returns:

True if the table exists, false otherwise