Skip to main content

Connect to JDBC

You can use the JDBC integration to create a resource and make it available in Retool. Once complete, your users can write queries that interact with JDBC data.

Requirements

The JDBC integration requirements depend on whether you have a cloud-hosted or self-hosted Retool organization. You may also need to make JDBC configuration changes before creating the resource.

Sufficient user permissions to create resources

All users for Retool organizations on Free or Team plans have global Edit permissions and can add, edit, and remove resources. If your organization manages user permissions for resources, you must be a member of a group with Edit all permissions.

Allow your deployment to access the data source

Your self-hosted deployment must have access to the data source. Ensure that any potential firewall rules for either the data source or your deployment instance are updated to allow them to communicate.

JDBC settings and authentication

You must have sufficient access and familiarity with your JDBC data source so you can provide:

  • Required connection settings (e.g., URL and server variables).
  • Authentication credentials (e.g., API keys).

In some cases, you may need to make changes to your JDBC configuration, such as generating authentication credentials or allowing access through a firewall. Refer to the configuration and authentication sections to learn more.

Configure the resource

Sign in to your Retool organization and navigate to the Resources tab. Click Create new > Resource, then select JDBC.

Configuration

Specify the name, location, and description to use for your JDBC resource. Retool displays the resource name and type in query editors to help users identify them.

Provide the following configuration settings to create the resource. Depending on how your data source is configured, you may also need to provide optional settings for Retool to connect.

Name

The name to use for the resource.

Description

A description of the resource. If enabled, Assist uses the Description to gain additional context about the resource. This setting has a max length of 600k characters.

Driver name

The JDBC driver to use.

Connection string

The database connection string.

Schema query

The SQL query to retrieve the schema.

Disable converting queries to prepared statements

Whether to disable SQL injection protection that allows dynamically generated SQL using JavaScript.

Self-hosted organizations must also update the deployment configuration to use this resource. The following guidance is for Docker-based deployments. If you use Helm or Kubernetes, use the respective deployment guides for mounting instructions instead.

Include JDBC dependencies

Create the /retool_backend/jdbc directory and add the JDBC .jar files to it. Include any .jar dependencies that your files need.

Update Docker configuration

Update compose.yaml to include the JDBC directory for the api, db-connector, and db-ssh-connector containers.

compose.yaml
./jdbc:/retool_backend/jdbc

Update docker.env to include a path to the JDBC directory.

docker.env
JDBC_DIRECTORY_PATH=/retool_backend/jdbc

Restart Retool

Run sudo docker compose up -d to restart Retool.

Test the connection

Click Test Connection to verify that Retool can successfully connect to the data source. If the test fails, check the resource settings and try again.

Testing a connection only checks whether Retool can successfully connect to the resource. It cannot check whether the provided credentials have sufficient privileges or can perform every supported action.

Save the resource

Click Create resource to complete the setup. You can then click either Create app to immediately start building a Retool app or Back to resources to return to the list of resources.

Next steps

Your JDBC resource is now ready to use. Check out related queries and code documentation to learn how to interact with JDBC data.