skillfed

JayDeBeApi

Use JDBC database drivers from Python 2/3 or Jython with a DB-API.

jaydebeapi v1.2.3 17.6M downloads/30d#1,112 on PyPI381
Copyleft license GNU LGPL DORMANT released

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 jaydebeapi

uv

uv add jaydebeapi

poetry

poetry add jaydebeapi

Installing 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

Development Status :: 4 - BetaIntended Audience :: DevelopersLicense :: OSI Approved :: GNU Library or Lesser General Public License (LGPL)Programming Language :: JavaProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 3Topic :: DatabaseTopic :: Software Development :: Libraries :: Java LibrariesTopic :: Software Development :: Libraries :: Python Modules

Tags

jdbc database driver pythonjava database connection pythondb-api jdbc bridgepython jpype databasejython jdbc driversql database java drivercross-platform jdbc access
jdbc-bridgejava-interopdb-api

More Libraries packages