JayDeBeApi
Use JDBC database drivers from Python 2/3 or Jython with a DB-API.
What it is and what it does
JayDeBeApi is a Python-to-Java bridge that lets you use JDBC database drivers from Python code as if they were native Python database libraries. It implements the DB-API v2.0 standard, so you can write database code that looks familiar to Python developers while leveraging the broad ecosystem of JDBC drivers that support databases like Oracle, DB2, SQL Server, PostgreSQL, MySQL, and many others. The package works on both cPython (using JPype1 to call Java) and Jython (which runs on the Java Virtual Machine natively), allowing you to use the same code across both Python implementations with minimal changes.
The core workflow is straightforward: you call `jaydebeapi.connect()` with a JDBC driver class name, connection URL, credentials, and optionally the path to the driver JAR file. This returns a standard DB-API connection object with cursor support for executing SQL and fetching results. The package handles type conversion between Java and Python, supports context managers (the `with` statement), and raises DB-API-compliant exceptions. However, it requires a working Java environment and proper JPype1 setup, and the project is no longer actively maintained—the last release was in June 2020.
Use it for:
- Access enterprise databases (Oracle, DB2, Teradata) from Python when native Python drivers are unavailable or when you need JDBC-specific functionality.
- Write database code that runs on both cPython and Jython without significant modification, leveraging Java's cross-platform JDBC ecosystem.
- Connect to specialized or legacy databases with JDBC drivers but no Python DB-API adapter, using a standard Python interface.
- Integrate Python data processing scripts with Java-based data warehouse or analytics platforms that expose JDBC connections.
- Build hybrid Python-Java applications where database access must be consistent across both runtime environments.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
JayDeBeApi bridges Python to Java JDBC database drivers, providing a DB-API v2.0-compliant interface for accessing databases from cPython (via JPype1) or Jython.
Yes, with conditions. Install if you need to access a JDBC-only database from Python and have no alternative DB-API driver, or if you must support both cPython and Jython with shared code. The low install friction and zero known vulnerabilities are positive. However, dormant maintenance (no updates since 2020) and the requirement for a properly configured Java environment and JPype1 are significant constraints. Verify that JPype1 compatibility matches your Python and Java versions before committing.
Install
jaydebeapi on PyPI
pip
pip install jaydebeapiuv
uv add jaydebeapipoetry
poetry add jaydebeapiInstalling JayDeBeApi
Before you install
Low install friction with pure-Python wheels available. Maintenance is dormant (last release 2020-06-12, 2254 days ago), though the repository remains active. JPype1 is the sole runtime dependency and must be properly installed; the package has been tested with JPype1 0.6.3, 0.7.0, and 0.7.5.
License in practice
Licensed under GNU LGPL (copyleft). Derivative works and modifications must be distributed under compatible terms; proprietary applications using this package must comply with LGPL obligations.
Quickstart
import jaydebeapi
conn = jaydebeapi.connect(
"org.hsqldb.jdbcDriver",
"jdbc:hsqldb:mem:.",
["SA", ""],
"/path/to/hsqldb.jar"
)
curs = conn.cursor()
curs.execute("select * from table")
results = curs.fetchall()
curs.close()
conn.close()
Requires Java runtime environment with JAVA_HOME environment variable set correctly; JPype1 must be installed and properly configured to load the Java Virtual Machine.
Verify before relying
- Current compatibility with JPype1 versions beyond 0.7.5 (last tested version in changelog).
- Whether Python 2 support remains functional or is effectively deprecated despite classifier presence.
- Compatibility with modern JDBC drivers and Java versions beyond those mentioned in documentation.
Package facts
| License | GNU LGPL (copyleft) |
| Python support | not specified |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 1 — JPype1 |
| Maintenance | dormant — 2,254 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 17,560,588/month — #1,112 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: JayDeBeApi-1.2.3-py2-none-any.whl; JayDeBeApi-1.2.3-py3-none-any.whl
Keywords: db, api, java, jdbc, bridge, connect, sql, jpype, jython
Tags
More Libraries packages
urllib3 is an HTTP client library that provides…
permissive · top 100 on PyPI
requestsRequests is a Python HTTP library that…
permissive · top 100 on PyPI
pluggyPluggy provides a plugin system that lets you…
permissive · top 100 on PyPI
python-dateutilProvides parsing, arithmetic, and recurrence…
permissive · top 100 on PyPI
sixSix provides utility functions to write Python…
permissive · top 100 on PyPI
pytestpytest is a testing framework that lets you…
permissive · top 100 on PyPI
apache-airflow-providers-jdbcProvides Apache Airflow integration for…
permissive · top 5,000 on PyPI
jpype1JPype provides Python access to Java classes…
permissive · top 1,000 on PyPI
sqlalchemy-jdbcapiSQLAlchemy dialect for JDBC and ODBC database…
permissive · top 15,000 on PyPI
dmpythondmPython is a native Python driver for…
permissive · top 15,000 on PyPI
pyathenajdbcPyAthenaJDBC wraps the Amazon Athena JDBC…
permissive · top 15,000 on PyPI
intersystems-irispythonProvides Python bindings to connect to and…
unclear · top 15,000 on PyPI
ibm-dbPython driver for connecting to IBM Db2 for LUW…
permissive · top 5,000 on PyPI
PyMySQLPyMySQL is a pure-Python MySQL and MariaDB…
permissive · top 1,000 on PyPI
pinotdbProvides Python DB-API and SQLAlchemy dialect…
permissive · top 1,000 on PyPI
hdbcliA PEP 249-compliant Python database driver for…
unclear · top 5,000 on PyPI