Skip to content

daneshpatel/sqlalchemy-jdbcapi

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

60 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

SQLAlchemy JDBC/ODBC API

CI PyPI version Python versions License Downloads

Modern, type-safe SQLAlchemy dialect for JDBC and ODBC connections with native Python implementation.

Community Help Needed: We don't have access to all database systems for thorough testing. If you encounter issues connecting to a particular database, please raise an issue - we rely on community feedback to improve support for all databases.

Features

  • Automatic JDBC driver download from Maven Central (zero configuration!)
  • ODBC support for native database connectivity
  • Full SQLAlchemy integration (ORM, reflection, Alembic, Inspector API)
  • DataFrame integration (pandas, polars, pyarrow)
  • ️ 18 database dialects (PostgreSQL, Oracle, MySQL, MariaDB, SQL Server, DB2, SQLite, OceanBase, GBase 8s, IBM iSeries, MS Access, Apache Phoenix)
  • Asyncio support for Core and ORM operations
  • HikariCP connection pooling for high-performance connections
  • Database X-Ray for query monitoring and performance tracing
  • Modern Python 3.10+ with full type hints
  • SQLAlchemy 2.0+ compatible

Installation

# Basic installation
pip install sqlalchemy-jdbcapi

# With DataFrame support
pip install sqlalchemy-jdbcapi[dataframe]

# With ODBC support
pip install sqlalchemy-jdbcapi[odbc]

JDBC Requirements

JDBC requires Java Runtime Environment (JRE) 8+:

# Check Java installation
java -version

# Install on Ubuntu/Debian
sudo apt-get install default-jre

# Install on macOS
brew install openjdk

Quick Start

JDBC (Recommended - Auto-Download)

from sqlalchemy import create_engine

# PostgreSQL - driver downloads automatically!
engine = create_engine('jdbcapi+postgresql://user:password@localhost/mydb')

# Oracle
engine = create_engine('jdbcapi+oracle://user:password@localhost:1521/ORCL')

# MySQL
engine = create_engine('jdbcapi+mysql://user:password@localhost/mydb')

ODBC (Alternative - No JVM)

from sqlalchemy import create_engine

# Requires OS-installed ODBC driver
engine = create_engine('odbcapi+postgresql://user:password@localhost/mydb')

Usage Example

from sqlalchemy import create_engine, text

engine = create_engine('jdbcapi+postgresql://user:pass@localhost/db')

with engine.connect() as conn:
    result = conn.execute(text("SELECT * FROM users"))
    for row in result:
        print(row)

Documentation

πŸ“– Full Documentation (Recommended)

Quick Links

Supported Databases

Database JDBC ODBC Auto-Download Async
PostgreSQL βœ… βœ… βœ… βœ…
Oracle βœ… βœ… βœ… βœ…
MySQL βœ… βœ… βœ… βœ…
MariaDB βœ… βœ… βœ… βœ…
SQL Server βœ… βœ… βœ… βœ…
DB2 βœ… ❌ βœ… βœ…
SQLite βœ… ❌ βœ… βœ…
OceanBase βœ… ❌ βœ… ❌
GBase 8s βœ… ❌ βœ… ❌
IBM iSeries βœ… ❌ βœ… ❌
MS Access βœ… ❌ βœ… ❌
Apache Phoenix βœ… ❌ βœ… ❌

See Drivers Guide for detailed configuration.

What's New in 2.1

Version 2.1 adds major new capabilities:

  • New database dialects: GBase 8s, IBM iSeries, MS Access, Apache Phoenix/Avatica
  • Asyncio support: Full async/await for Core and ORM operations
  • HikariCP integration: High-performance connection pooling
  • Database X-Ray: Query monitoring, metrics, and performance tracing
  • Docker test suite: Functional tests with real databases

What's New in 2.0

Version 2.0 was a complete modernization:

  • Native JDBC implementation (replaced JayDeBeApi)
  • Added ODBC support
  • DataFrame integration (pandas, polars, pyarrow)
  • Full SQLAlchemy native dialect (ORM, reflection, Alembic)
  • Expanded from 3 to 12 database dialects
  • Modern Python 3.10+ with complete type hints
  • SQLAlchemy 2.0+ support

See CHANGELOG.md for migration guide.

Contributing

We welcome contributions! Please see:

Development

# Clone repository
git clone https://github.com/daneshpatel/sqlalchemy-jdbcapi.git
cd sqlalchemy-jdbcapi

# Install in development mode
pip install -e ".[dev]"

# Run tests
pytest tests/

# Run linting
ruff check src tests

See Contributing Guide for detailed instructions.

License

This project is licensed under the Apache License 2.0 - see LICENSE file for details.

Links

Support

About

Modern, type-safe SQLAlchemy dialect for JDBC and ODBC connections with native Python implementation.

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 6