jaydebeapi

JayDeBeApi

一般来说,不同的数据库针对Python都有对应的Module去访问,他们基本上都使用统一的Python DB-API,除了连接上会有点区别,别的使用方式都基本一样。

数据库 模块
mysql pymysql
sql server pymssql
Oracle cx_Oracle
Teradata teradatasql
etc… etc…

但不可避免的,有些库需要系统安装一些依赖,比如Oracle,就需要安装有对应的oralce client,cx_Oracle才能正常使用。 此外很多数据库提供odbc driver,那么就可以在安装driver之后,统一使用pyodbc去连接。在PA的写的在windows下query hive和impala数据的小工具,使用的就是pyodbc的方式。

但是当需要安装除模块本身外的依赖都会显得有些麻烦,今天主要是记录一下在python中使用jdbc(jar包)的方式连接sql server例子,使用的module就是JayDeBeApi

The JayDeBeApi module allows you to connect from Python code to databases using Java JDBC. It provides a Python DB-API v2.0 to that database.

It works on ordinary Python (cPython) using the JPype Java integration or on Jython to make use of the Java JDBC driver.

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.

Read more