JdbcDataSource
Manages connections to a JDBC data source.
To configure the connection pool, add a JdbcDataSource object named AuditService
in the route heap.
Usage
{
"name": string,
"type": "JdbcDataSource",
"config": {
"dataSourceClassName": configuration expression<string>,
"driverClassName": configuration expression<string>,
"executor": ScheduledExectutorService reference,
"jdbcUrl": configuration expression<url>,
"passwordSecretId": configuration expression<secret-id>,
"poolName": configuration expression<string>,
"properties": object,
"secretsProvider": SecretsProvider reference,
"username": configuration expression<string>
}
}
Properties
"dataSourceClassName"
: configuration expression<string>, optional-
The data source class name to use to connect to the database.
Depending on the underlying data source, use either
jdbcUrl
, ordataSourceClassName
withurl
. See the Properties. "driverClassName"
: configuration expression<string>, optional-
Class name of the JDBC connection driver. The following examples can be used:
-
MySQL Connector/J:
com.mysql.jdbc.Driver
-
H2:
org.h2.Driver
This property is optional, but required for older JDBC drivers.
-
"executor"
: ScheduledExecutorService reference, optional-
A ScheduledExecutorService for maintenance tasks.
Default: ScheduledExecutorService.
"jdbcUrl"
: configuration expression<url>, optional-
The JDBC URL to use to connect to the database.
Depending on the underlying data source, use either
jdbcUrl
, ordataSourceClassName
withurl
. See the Properties. "passwordSecretId"
: configuration expression<secret-id>, required if the database is password-protected-
The secret ID of the password to access the database.
"poolName"
: configuration expression<string>, optional-
The connection pool name. Use to identify a pool easily for maintenance and monitoring.
"properties"
: object, optional-
Server properties specific to the type of data source being used. The values of the object are evaluated as configuration expression<strings>.
For information about available options, see the data source documentation.
"secretsProvider"
: SecretsProvider reference, optional-
The SecretsProvider to use to resolve queried secrets, such as passwords and cryptographic keys. Provide either the name of a SecretsProvider object defined in the heap, or specify a SecretsProvider object inline.
Default: The route’s default secret service. For more information, see Default secrets object.
"username"
: configuration expression<string>, optional-
The username to access the database.
Example
For an example that uses JdbcDataSource, see Log In With Credentials From a Database and Recording Access Audit Events in a Database.
The following example configures a JdbcDataSource with a dataSourceClassName
and url
:
"config": {
"username": "testUser",
"dataSourceClassName": "org.h2.jdbcx.JdbcDataSource",
"properties": {
"url": "jdbc:h2://localhost:3306/auth"
},
"passwordSecretId": "database.password",
"secretsProvider": "MySecretsProvider"
}
The following example configures a JdbcDataSource with jdbcUrl
alone:
"config": {
"username": "testUser",
"jdbcUrl": "jdbc:h2://localhost:3306/auth",
"passwordSecretId": "database.password",
"secretsProvider": "MySecretsProvider"
}
The following example configures a JdbcDataSource with jdbcUrl
and driverName
. Use this format for older drivers, where jdbcUrl
does not provide enough information:
"config": {
"username": "testUser",
"jdbcUrl": "jdbc:h2://localhost:3306/auth",
"driverName": "org.h2.Driver",
"passwordSecretId": "database.password",
"secretsProvider": "MySecretsProvider"
}