Looking for a JDBC driver for Salesforce?

Salesforce provides powerful APIs for accessing and managing cloud data, while many Java applications, ETL tools, and data integration platforms are built around JDBC. A Salesforce JDBC driver bridges these two technologies, allowing Java applications to access and modify Salesforce data through the familiar JDBC programming model.

Unlike a traditional relational database, Salesforce uses APIs and SOQL (Salesforce Object Query Language) to work with data. A JDBC driver translates JDBC operations into Salesforce API requests, allowing applications to use standard Java database connectivity patterns without requiring developers to write custom API integration code for every operation.

A Salesforce JDBC driver typically:

  • Executes SOQL SELECT queries through JDBC
  • Supports SQL-like INSERT, UPDATE, DELETE, and UPSERT operations
  • Exposes Salesforce objects and fields through JDBC metadata
  • Translates JDBC operations into Salesforce API requests rather than executing them through a traditional relational database engine

What Is a Salesforce JDBC Driver?

A Salesforce JDBC driver is a Java-based driver that allows applications built on the JDBC standard to connect to Salesforce data through Salesforce APIs. It provides a familiar JDBC interface for Java applications and JDBC-compatible tools while translating JDBC operations into API requests that Salesforce can process.

Instead of writing custom Salesforce API code, developers can:

  • Use standard JDBC classes such as Connection, Statement, PreparedStatement, and ResultSet
  • Execute SOQL queries through JDBC
  • Perform data modification using SQL-like syntax
  • Discover Salesforce schema dynamically via DatabaseMetaData

This approach simplifies Java-based integrations, scheduled jobs, and data pipelines that need controlled access to Salesforce data.

Supported Salesforce APIs and Connection Types

Salesforce JDBC drivers rely on officially supported Salesforce APIs.

Supported APIs

KingswaySoft's Salesforce JDBC Driver provides API-based connectivity through SOAP, REST, and Bulk APIs, allowing applications to query, insert, update, delete, and upsert Salesforce data through JDBC-based workflows.

  • SOAP API for metadata and data operations
  • REST API for metadata and single-record operations
  • Bulk API for high-volume data reads and writes
  • Concurrent processing for improved performance during large-volume write operations

Important: SELECT statements must use Salesforce SOQL syntax, even when executed through JDBC.

Supported Salesforce Objects and Environments

Object Support

  • Standard objects (e.g., Account, Contact, Opportunity)
  • Custom objects (__c)
  • Salesforce objects and their available fields can be discovered through JDBC metadata, subject to the permissions and capabilities exposed by the Salesforce API and the connected user.

Environments

  • Production orgs
  • Sandbox orgs
  • Developer environments
  • Custom Salesforce service URLs

How Salesforce Data Is Represented in JDBC

Objects as Tables

  • Salesforce objects are exposed as JDBC tables.

Fields as Columns

Salesforce field metadata is mapped to JDBC column attributes:

  • Field API name → Column name
  • Salesforce type → JDBC SQL type
  • Nullable, length, and precision preserved

Metadata Discovery

JDBC metadata methods allow applications to explore Salesforce schema dynamically.

ResultSet tables = connection.getMetaData().getTables(null, null, null, null);

This enables schema discovery in Java applications, ETL tools, and JDBC-compatible explorers.

Data Modification Support (DML)

Salesforce JDBC drivers support SQL-like syntax for data modification.

INSERT

INSERT INTO Account (Name, Type)
VALUES ('Test Account', 'Customer')

UPDATE

UPDATE Account
SET AccountNumber = '12345'
WHERE Type = 'Customer'

DELETE

DELETE FROM Account
WHERE Name = 'Test Account'

Deleted records are soft-deleted and moved to the Salesforce Recycle Bin.

UPSERT

UPSERT operations allow insert-or-update behavior using record IDs or external ID fields.

UPSERT INTO Account (Name, AccountNumber, Type, Id)
VALUES ('Test', '123456', 'Customer', null)
ON DUPLICATE KEY UPDATE UPSERTFIELDS = Id

Although the driver supports SQL-like INSERT, UPDATE, DELETE, and UPSERT statements, these operations are translated into Salesforce API requests rather than executed by a traditional relational database engine.

Performance and Configuration Considerations

Proper configuration is essential for production workloads. JDBC drivers provide configuration options to balance performance and API usage:

Setting Description
ReadBatchSize Records retrieved per API call
WriteBatchSize Records written per batch
ConcurrentWritingThreads Parallel write operations
RetryOnIntermittentErrors Retry transient failures
CacheExpirationTime Metadata caching duration

Authentication and Security

Authentication options depend on the selected Salesforce API and include OAuth-based authentication methods such as Authorization Code, Client Credentials, and certificate-based authentication. Legacy SOAP Login authentication is also supported but is scheduled for retirement in 2027.

Common Use Cases

Salesforce JDBC drivers are commonly used for:

  • Java applications (Spring Boot services, scheduled jobs)
  • Data integration and automation pipelines
  • ETL and data synchronization workflows
  • Metadata discovery and administrative tooling

They are not intended for high-frequency transactional OLTP workloads.

Limitations of Salesforce JDBC Drivers

  • SELECT queries must use SOQL
  • No arbitrary SQL JOIN support (only SOQL relationships)
  • Salesforce is not a relational database
  • JDBC access is only available via third-party drivers
  • Designed for integration and analytics, not transactional systems

Enterprise-Ready Solution

For teams requiring a production-ready Salesforce JDBC implementation, KingswaySoft’s Salesforce JDBC Driver, offered with the JDBC Driver Pack, provides a practical way to connect Java applications to Salesforce using standard JDBC patterns while respecting Salesforce’s API and SOQL constraints.

It is designed for integration workloads such as Java services, ETL jobs, and data automation, without requiring developers to write custom Salesforce API code.

Have questions? Contact our team.

Learn More Request a Demo
JDBC Driver Pack Graphic

FAQ

About KingswaySoft

KingswaySoft develops enterprise data integration and connectivity solutions for connecting applications, APIs, databases, cloud platforms, and enterprise systems. Its solutions include the JDBC Driver Pack, Integration Gateway, and a broad range of SSIS integration components. The JDBC Driver Pack provides JDBC-based connectivity for a variety of enterprise data sources, while KingswaySoft's broader integration solutions support data movement and automation across platforms such as Salesforce, Dynamics 365, SAP, SharePoint, and many other applications and services.