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

Data Downloader

背景

有时候需要从数据库中把数据导出来查看,可以在编辑器中直接拷出来或者导出来。

又或者像 weekly/monthly 的数据,我偶尔导一次,不想再打开 sqldeveloper 去操作 Oracle,所以就写了类似下面的工具。

Read more

DB For Test Result

背景

之前做的自动化测试,最后的测试结果都是通过邮件发送给相关人员,没有做持久化,所以有时候想找一个版本的结果要去翻邮件列表,而且很有可能找不到。

接下来我希望能把最后的测试结果存放在数据库中,这样就可以方便对历史结果进行查询,充分利用数据库的特性。

Read more