A bridge from JDBC database drivers to Python DB-API.
In contrast to zxJDBC from the Jython project JayDeBeApi let’s you access a database with Jython AND Python with only minor code modifications. JayDeBeApi’s future goal is to provide a unique and fast interface to different types of JDBC-Drivers through a flexible plug-in mechanism.
You can get and install JayDeBeApi with easy_install
$ easy_install JayDeBeApi
If you want to install JayDeBeApi in Jython make sure to have EasyInstall available for it.
Or you can get a copy of the source branch using bzr by running
$ bzr branch lp:jaydebeapi
and install it with
$ python setup.py install
or if you are using Jython use
$ jython setup.py install
It has been tested with Jython 2.5.2.
If you are using cPython ensure that you have installed JPype properly. It has been tested with JPype 0.5.4.
Basically you just import the jaydebeapi Python module and execute the connect method. This gives you a DB-API conform connection to the database.
The first argument to connect is the name of the Java driver class. The rest of the arguments are internally passed to the Java DriverManager.getConnection method. See the Javadoc of DriverManager class for details.
Here is an example:
>>> import jaydebeapi >>> conn = jaydebeapi.connect('org.hsqldb.jdbcDriver', ... 'jdbc:hsqldb:mem', 'SA', '') >>> curs = conn.cursor() >>> curs.execute('create table CUSTOMER' ... '("CUST_ID" INTEGER not null,' ... ' "NAME" VARCHAR not null,' ... ' primary key ("CUST_ID"))' ... ) >>> curs.execute("insert into CUSTOMER values (1, 'John')") >>> curs.execute("select * from CUSTOMER") >>> curs.fetchall() [(1, u'John')]
You probably have to configure Jython or JPype to actually be able to access the database driver’s jar files. If I want to connect to a HSQL in memory database on my Ubuntu machine I’m starting Python by running
$ JAVA_HOME=/usr/lib/jvm/java-6-openjdk python
Now I have to configure JPype
>>> jar = '/path/to/my/driver/hsqldb.jar' >>> args='-Djava.class.path=%s' % jar >>> jpype.startJVM(jvm_path, args)
or in Jython I have to
>>> jar = '/path/to/my/driver/hsqldb.jar' >>> import sys >>> sys.path.append(jar)
JayDeBeApi is released under the GNU Lesser General Public license (LGPL). See the file COPYING and COPYING.LESSER in the distribution for details.
- Initial release