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, andResultSet - 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
SELECTqueries 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 DemoFAQ
No. Salesforce does not provide a native JDBC driver. All JDBC access must be done through third-party drivers such as KingswaySoft's JDBC Driver.
SQL-like syntax is supported for INSERT, UPDATE, DELETE, and UPSERT operations. However, SELECT queries must follow Salesforce's SOQL syntax.
Salesforce relationships can be queried using SOQL relationship fields, but the driver does not support arbitrary SQL JOINs.
Yes. The KingswaySoft Salesforce JDBC Driver is designed for production integration workloads when properly configured.
- SELECT queries: Must use SOQL.
- No general-purpose SQL JOIN engine: Only SOQL relationships supported.
- Not a relational database: Salesforce is a multi-tenant object store.
- No native JDBC support: Only available via third-party drivers.
- Designed for integration: Not intended for transactional OLTP workloads.
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.
