Skip to content

Database

Overview

Module

This module provides a Database class that serves as an interface for interacting with relational databases in the Dirigible environment. It includes functionalities for executing SQL queries, managing database connections, and retrieving metadata about the database structure. The module also defines a set of SQL type constants and helper functions for handling specific data types like CLOBs and BLOBs.

Key Features

  • SQL Execution: Execute arbitrary SQL queries and updates against the connected database.
  • Metadata Retrieval: Access detailed metadata about database schemas, tables, columns, and other structural elements.
  • Type Handling: Provides utilities for working with various SQL data types, including CLOBs and BLOBs, with special handling for HANA databases.
  • Database System Detection: Automatically detects the underlying database system to apply appropriate handling for specific data types and features.
  • Prepared Statements: Support for prepared statements to enhance security and performance when executing parameterized queries.

Use Cases

  • Performing database operations such as querying, inserting, updating, and deleting records in a relational database.
  • Retrieving and analyzing database metadata to understand the structure of the database and its components.
  • Handling large data types like CLOBs and BLOBs in a way that is compatible with different database systems, including HANA.
  • Implementing data access layers in applications that require interaction with relational databases, while abstracting away database-specific details.

Example Usage

ts
import { Database, SQLTypes } from "@aerokit/sdk/db";
// Execute a simple query
const resultSet = Database.executeQuery("SELECT * FROM Users WHERE age > ?", [30], [SQLTypes.INTEGER]);
while (resultSet.next()) {
 console.log(resultSet.getString("name"));
}
// Retrieve database metadata
const metadata = Database.getMetadata();
console.log(metadata.databaseProductName);

Classes

PreparedStatement

close()

ts
close(): void;

Returns

  • Type: void
  • Description:

getResultSet()

ts
getResultSet(): ResultSet;

Returns

  • Type: ResultSet
  • Description:

execute()

ts
execute(): boolean;

Returns

  • Type: boolean
  • Description:

executeQuery()

ts
executeQuery(): ResultSet;

Returns

  • Type: ResultSet
  • Description:

executeUpdate()

ts
executeUpdate(): number;

Returns

  • Type: number
  • Description:

setNull()

ts
setNull(index: number, sqlType: number): void;
ParameterTypeDescription
indexnumber
sqlTypenumber

Returns

  • Type: void
  • Description:

setBinaryStream()

ts
setBinaryStream(parameterIndex: number, inputStream: InputStream, length: number): void;
ParameterTypeDescription
parameterIndexnumber
inputStreamInputStream
lengthnumber

Returns

  • Type: void
  • Description:

setBoolean()

ts
setBoolean(index: number, value: boolean): void;
ParameterTypeDescription
indexnumber
valueboolean

Returns

  • Type: void
  • Description:

setByte()

ts
setByte(index: number, value: any): void;
ParameterTypeDescription
indexnumber
valueany

Returns

  • Type: void
  • Description:

setBlob()

ts
setBlob(index: number, value: any): void;
ParameterTypeDescription
indexnumber
valueany

Returns

  • Type: void
  • Description:

setClob()

ts
setClob(index: number, value: any): void;
ParameterTypeDescription
indexnumber
valueany

Returns

  • Type: void
  • Description:

setNClob()

ts
setNClob(index: number, value: any): void;
ParameterTypeDescription
indexnumber
valueany

Returns

  • Type: void
  • Description:

setBytesNative()

ts
setBytesNative(index: number, value: any): void;
ParameterTypeDescription
indexnumber
valueany

Returns

  • Type: void
  • Description:

setBytes()

ts
setBytes(index: number, value: any): void;
ParameterTypeDescription
indexnumber
valueany

Returns

  • Type: void
  • Description:

setDate()

ts
setDate(index: number, value: any): void;
ParameterTypeDescription
indexnumber
valueany

Returns

  • Type: void
  • Description:

setDouble()

ts
setDouble(index: number, value: number): void;
ParameterTypeDescription
indexnumber
valuenumber

Returns

  • Type: void
  • Description:

setFloat()

ts
setFloat(index: number, value: number): void;
ParameterTypeDescription
indexnumber
valuenumber

Returns

  • Type: void
  • Description:

setInt()

ts
setInt(index: number, value: number): void;
ParameterTypeDescription
indexnumber
valuenumber

Returns

  • Type: void
  • Description:

setLong()

ts
setLong(index: number, value: number): void;
ParameterTypeDescription
indexnumber
valuenumber

Returns

  • Type: void
  • Description:

setShort()

ts
setShort(index: number, value: number): void;
ParameterTypeDescription
indexnumber
valuenumber

Returns

  • Type: void
  • Description:

setString()

ts
setString(index: number, value: string): void;
ParameterTypeDescription
indexnumber
valuestring

Returns

  • Type: void
  • Description:

setTime()

ts
setTime(index: number, value: any): void;
ParameterTypeDescription
indexnumber
valueany

Returns

  • Type: void
  • Description:

setTimestamp()

ts
setTimestamp(index: number, value: any): void;
ParameterTypeDescription
indexnumber
valueany

Returns

  • Type: void
  • Description:

setBigDecimal()

ts
setBigDecimal(index: number, value: number): void;
ParameterTypeDescription
indexnumber
valuenumber

Returns

  • Type: void
  • Description:

setNString()

ts
setNString(index: number, value: string): void;
ParameterTypeDescription
indexnumber
valuestring

Returns

  • Type: void
  • Description:

addBatch()

ts
addBatch(): void;

Returns

  • Type: void
  • Description:

executeBatch()

ts
executeBatch(): void;

Returns

  • Type: void
  • Description:

getMetaData()

ts
getMetaData(): any;

Returns

  • Type: any
  • Description:

getMoreResults()

ts
getMoreResults(): boolean;

Returns

  • Type: boolean
  • Description:

getParameterMetaData()

ts
getParameterMetaData(): any;

Returns

  • Type: any
  • Description:

getSQLWarning()

ts
getSQLWarning(): any;

Returns

  • Type: any
  • Description:

isClosed()

ts
isClosed(): boolean;

Returns

  • Type: boolean
  • Description:

CallableStatement

getResultSet()

ts
getResultSet(): ResultSet;

Returns

  • Type: ResultSet
  • Description:

executeQuery()

ts
executeQuery(): ResultSet;

Returns

  • Type: ResultSet
  • Description:

executeUpdate()

ts
executeUpdate(): number;

Returns

  • Type: number
  • Description:

registerOutParameter()

ts
registerOutParameter(parameterIndex: number, sqlType: any): void;
ParameterTypeDescription
parameterIndexnumber
sqlTypeany

Returns

  • Type: void
  • Description:

registerOutParameterByScale()

ts
registerOutParameterByScale(parameterIndex: number, sqlType: any, scale: number): void;
ParameterTypeDescription
parameterIndexnumber
sqlTypeany
scalenumber

Returns

  • Type: void
  • Description:

registerOutParameterByTypeName()

ts
registerOutParameterByTypeName(parameterIndex: number, sqlType: any, typeName: string): void;
ParameterTypeDescription
parameterIndexnumber
sqlTypeany
typeNamestring

Returns

  • Type: void
  • Description:

wasNull()

ts
wasNull(): boolean;

Returns

  • Type: boolean
  • Description:

getString()

ts
getString(parameterIndex: number): string;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: string
  • Description:

getBoolean()

ts
getBoolean(parameterIndex: number): boolean;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: boolean
  • Description:

getByte()

ts
getByte(parameterIndex: number): any;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: any
  • Description:

getShort()

ts
getShort(parameterIndex: number): number;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: number
  • Description:

getInt()

ts
getInt(parameterIndex: number): number;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: number
  • Description:

getLong()

ts
getLong(parameterIndex: number): number;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: number
  • Description:

getFloat()

ts
getFloat(parameterIndex: number): number;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: number
  • Description:

getDouble()

ts
getDouble(parameterIndex: number): number;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: number
  • Description:

getDate()

ts
getDate(parameterIndex: number): Date;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: Date
  • Description:

getTime()

ts
getTime(parameterIndex: number): Date;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: Date
  • Description:

getTimestamp()

ts
getTimestamp(parameterIndex: number): Date;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: Date
  • Description:

getObject()

ts
getObject(parameterIndex: number): any;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: any
  • Description:

getBigDecimal()

ts
getBigDecimal(parameterIndex: number): number;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: number
  • Description:

getRef()

ts
getRef(parameterIndex: number): any;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: any
  • Description:

getBytes()

ts
getBytes(parameterIndex: number): void;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: void
  • Description:

getBytesNative()

ts
getBytesNative(parameterIndex: number): void;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: void
  • Description:

getBlob()

ts
getBlob(parameterIndex: number): any;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: any
  • Description:

getBlobNative()

ts
getBlobNative(parameterIndex: number): any;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: any
  • Description:

getClob()

ts
getClob(parameterIndex: number): any;
ParameterTypeDescription
parameterIndexnumber

Returns

  • Type: any
  • Description:

getNClob()

ts
getNClob(parameterIndex: any): any;
ParameterTypeDescription
parameterIndexany

Returns

  • Type: any
  • Description:

getNString()

ts
getNString(parameterIndex: any): string;
ParameterTypeDescription
parameterIndexany

Returns

  • Type: string
  • Description:

getArray()

ts
getArray(parameterIndex: any): void;
ParameterTypeDescription
parameterIndexany

Returns

  • Type: void
  • Description:

getURL()

ts
getURL(parameterIndex: any): any;
ParameterTypeDescription
parameterIndexany

Returns

  • Type: any
  • Description:

getRowId()

ts
getRowId(parameterIndex: any): any;
ParameterTypeDescription
parameterIndexany

Returns

  • Type: any
  • Description:

getSQLXML()

ts
getSQLXML(parameterIndex: any): any;
ParameterTypeDescription
parameterIndexany

Returns

  • Type: any
  • Description:

setURL()

ts
setURL(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

setNull()

ts
setNull(parameterIndex: number, sqlTypeStr: any, typeName: string): void;
ParameterTypeDescription
parameterIndexnumber
sqlTypeStrany
typeNamestring

Returns

  • Type: void
  • Description:

setBoolean()

ts
setBoolean(parameterIndex: number, value: boolean): void;
ParameterTypeDescription
parameterIndexnumber
valueboolean

Returns

  • Type: void
  • Description:

setByte()

ts
setByte(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

setShort()

ts
setShort(parameterIndex: number, value: number): void;
ParameterTypeDescription
parameterIndexnumber
valuenumber

Returns

  • Type: void
  • Description:

setInt()

ts
setInt(parameterIndex: number, value: number): void;
ParameterTypeDescription
parameterIndexnumber
valuenumber

Returns

  • Type: void
  • Description:

setLong()

ts
setLong(parameterIndex: number, value: number): void;
ParameterTypeDescription
parameterIndexnumber
valuenumber

Returns

  • Type: void
  • Description:

setFloat()

ts
setFloat(parameterIndex: number, value: number): void;
ParameterTypeDescription
parameterIndexnumber
valuenumber

Returns

  • Type: void
  • Description:

setDouble()

ts
setDouble(parameterIndex: number, value: number): void;
ParameterTypeDescription
parameterIndexnumber
valuenumber

Returns

  • Type: void
  • Description:

setBigDecimal()

ts
setBigDecimal(parameterIndex: number, value: number): void;
ParameterTypeDescription
parameterIndexnumber
valuenumber

Returns

  • Type: void
  • Description:

setString()

ts
setString(parameterIndex: number, value: string): void;
ParameterTypeDescription
parameterIndexnumber
valuestring

Returns

  • Type: void
  • Description:

setBytes()

ts
setBytes(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

setDate()

ts
setDate(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

setTime()

ts
setTime(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

setTimestamp()

ts
setTimestamp(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

setAsciiStream()

ts
setAsciiStream(parameterIndex: number, inputStream: InputStream, length: number): void;
ParameterTypeDescription
parameterIndexnumber
inputStreamInputStream
lengthnumber

Returns

  • Type: void
  • Description:

setBinaryStream()

ts
setBinaryStream(parameterIndex: number, inputStream: InputStream, length: number): void;
ParameterTypeDescription
parameterIndexnumber
inputStreamInputStream
lengthnumber

Returns

  • Type: void
  • Description:

setObject()

ts
setObject(parameterIndex: number, value: any, targetSqlType: number, scale: number): void;
ParameterTypeDescription
parameterIndexnumber
valueany
targetSqlTypenumber
scalenumber

Returns

  • Type: void
  • Description:

setRowId()

ts
setRowId(parameterIndex: number, value: number): void;
ParameterTypeDescription
parameterIndexnumber
valuenumber

Returns

  • Type: void
  • Description:

setNString()

ts
setNString(parameterIndex: number, value: string): void;
ParameterTypeDescription
parameterIndexnumber
valuestring

Returns

  • Type: void
  • Description:

setSQLXML()

ts
setSQLXML(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

setBlob()

ts
setBlob(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

setClob()

ts
setClob(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

setNClob()

ts
setNClob(parameterIndex: number, value: any): void;
ParameterTypeDescription
parameterIndexnumber
valueany

Returns

  • Type: void
  • Description:

execute()

ts
execute(): boolean;

Returns

  • Type: boolean
  • Description:

getMoreResults()

ts
getMoreResults(): boolean;

Returns

  • Type: boolean
  • Description:

getParameterMetaData()

ts
getParameterMetaData(): any;

Returns

  • Type: any
  • Description:

isClosed()

ts
isClosed(): boolean;

Returns

  • Type: boolean
  • Description:

close()

ts
close(): void;

Returns

  • Type: void
  • Description:

ResultSet

toJson()

Converts the ResultSet into a JSON array of objects.

ts
toJson(limited: boolean, stringify: boolean): void;
ParameterTypeDescription
limitedbooleanWhether to use limited JSON conversion (optimized).
stringifybooleanWhether to return the JSON as a string or a parsed array.

Returns

  • Type: void
  • Description: A JavaScript array of objects representing the result set, or a string if stringify is true.

close()

ts
close(): void;

Returns

  • Type: void
  • Description:

getBigDecimal()

ts
getBigDecimal(identifier: any): any;
ParameterTypeDescription
identifierany

Returns

  • Type: any
  • Description:

getBoolean()

ts
getBoolean(identifier: any): boolean;
ParameterTypeDescription
identifierany

Returns

  • Type: boolean
  • Description:

getByte()

ts
getByte(identifier: any): any;
ParameterTypeDescription
identifierany

Returns

  • Type: any
  • Description:

getBytes()

ts
getBytes(identifier: any): void;
ParameterTypeDescription
identifierany

Returns

  • Type: void
  • Description:

getBytesNative()

ts
getBytesNative(identifier: any): void;
ParameterTypeDescription
identifierany

Returns

  • Type: void
  • Description:

getBlob()

ts
getBlob(identifier: any): any;
ParameterTypeDescription
identifierany

Returns

  • Type: any
  • Description:

getBlobNative()

ts
getBlobNative(identifier: any): any;
ParameterTypeDescription
identifierany

Returns

  • Type: any
  • Description:

getClob()

ts
getClob(identifier: any): any;
ParameterTypeDescription
identifierany

Returns

  • Type: any
  • Description:

getNClob()

ts
getNClob(identifier: any): any;
ParameterTypeDescription
identifierany

Returns

  • Type: any
  • Description:

getDate()

ts
getDate(identifier: any): Date;
ParameterTypeDescription
identifierany

Returns

  • Type: Date
  • Description:

getDouble()

ts
getDouble(identifier: any): number;
ParameterTypeDescription
identifierany

Returns

  • Type: number
  • Description:

getFloat()

ts
getFloat(identifier: any): number;
ParameterTypeDescription
identifierany

Returns

  • Type: number
  • Description:

getInt()

ts
getInt(identifier: any): number;
ParameterTypeDescription
identifierany

Returns

  • Type: number
  • Description:

getLong()

ts
getLong(identifier: any): number;
ParameterTypeDescription
identifierany

Returns

  • Type: number
  • Description:

getShort()

ts
getShort(identifier: any): number;
ParameterTypeDescription
identifierany

Returns

  • Type: number
  • Description:

getString()

ts
getString(identifier: any): string;
ParameterTypeDescription
identifierany

Returns

  • Type: string
  • Description:

getTime()

ts
getTime(identifier: any): Date;
ParameterTypeDescription
identifierany

Returns

  • Type: Date
  • Description:

getTimestamp()

ts
getTimestamp(identifier: any): Date;
ParameterTypeDescription
identifierany

Returns

  • Type: Date
  • Description:

isAfterLast()

ts
isAfterLast(): boolean;

Returns

  • Type: boolean
  • Description:

isBeforeFirst()

ts
isBeforeFirst(): boolean;

Returns

  • Type: boolean
  • Description:

isClosed()

ts
isClosed(): boolean;

Returns

  • Type: boolean
  • Description:

isFirst()

ts
isFirst(): boolean;

Returns

  • Type: boolean
  • Description:

isLast()

ts
isLast(): boolean;

Returns

  • Type: boolean
  • Description:

next()

ts
next(): boolean;

Returns

  • Type: boolean
  • Description:

getMetaData()

ts
getMetaData(): any;

Returns

  • Type: any
  • Description:

getNString()

ts
getNString(columnIndex: number): string;
ParameterTypeDescription
columnIndexnumber

Returns

  • Type: string
  • Description:

Connection

isOfType()

Checks if the connection is for a specific database system.

ts
isOfType(databaseSystem: DatabaseSystem): boolean;
ParameterTypeDescription
databaseSystemDatabaseSystem

Returns

  • Type: boolean
  • Description:

getDatabaseSystem()

Returns the type of the underlying database system as a DatabaseSystem enum.

ts
getDatabaseSystem(): DatabaseSystem;

Returns

  • Type: DatabaseSystem
  • Description:

prepareStatement()

Creates a new PreparedStatement object for sending parameterized SQL statements to the database.

ts
prepareStatement(sql: string): PreparedStatement;
ParameterTypeDescription
sqlstring

Returns

  • Type: PreparedStatement
  • Description:

prepareCall()

Creates a CallableStatement object for calling database stored procedures or functions.

ts
prepareCall(sql: string): CallableStatement;
ParameterTypeDescription
sqlstring

Returns

  • Type: CallableStatement
  • Description:

close()

ts
close(): void;

Returns

  • Type: void
  • Description:

commit()

ts
commit(): void;

Returns

  • Type: void
  • Description:

getAutoCommit()

ts
getAutoCommit(): boolean;

Returns

  • Type: boolean
  • Description:

getCatalog()

ts
getCatalog(): string;

Returns

  • Type: string
  • Description:

getSchema()

ts
getSchema(): string;

Returns

  • Type: string
  • Description:

getTransactionIsolation()

ts
getTransactionIsolation(): number;

Returns

  • Type: number
  • Description:

isClosed()

ts
isClosed(): boolean;

Returns

  • Type: boolean
  • Description:

isReadOnly()

ts
isReadOnly(): boolean;

Returns

  • Type: boolean
  • Description:

isValid()

ts
isValid(): boolean;

Returns

  • Type: boolean
  • Description:

rollback()

ts
rollback(): void;

Returns

  • Type: void
  • Description:

setAutoCommit()

ts
setAutoCommit(autoCommit: boolean): void;
ParameterTypeDescription
autoCommitboolean

Returns

  • Type: void
  • Description:

setCatalog()

ts
setCatalog(catalog: string): void;
ParameterTypeDescription
catalogstring

Returns

  • Type: void
  • Description:

setReadOnly()

ts
setReadOnly(readOnly: boolean): void;
ParameterTypeDescription
readOnlyboolean

Returns

  • Type: void
  • Description:

setSchema()

ts
setSchema(schema: string): void;
ParameterTypeDescription
schemastring

Returns

  • Type: void
  • Description:

setTransactionIsolation()

ts
setTransactionIsolation(transactionIsolation: number): void;
ParameterTypeDescription
transactionIsolationnumber

Returns

  • Type: void
  • Description:

getMetaData()

ts
getMetaData(): any;

Returns

  • Type: any
  • Description:

Database

getDataSources()

Returns a list of available data source names.

ts
static getDataSources(): void;

Returns

  • Type: void
  • Description:

getMetadata()

Returns database metadata for the specified data source.

ts
static getMetadata(datasourceName: string): DatabaseMetadata;
ParameterTypeDescription
datasourceNamestring

Returns

  • Type: DatabaseMetadata
  • Description:

getProductName()

Returns the product name of the underlying database system.

ts
static getProductName(datasourceName: string): string;
ParameterTypeDescription
datasourceNamestring

Returns

  • Type: string
  • Description:

getConnection()

Gets a new database connection object.

ts
static getConnection(datasourceName: string): Connection;
ParameterTypeDescription
datasourceNamestring

Returns

  • Type: Connection
  • Description: